lier deux fichiers excel - VB/VBA/VBS - Programmation
Marsh Posté le 19-02-2010 à 15:52:13
Bonjour
corsu_lm a écrit : je vais essayer d'être le plus clair possible. |
En ce qui me concerne, c'est loupé...
Je sais pas, fais des retour a la ligne pour chaque exemple, des sauts de ligne, des points, des tabulations etc.
Car la, entre les EA1 les range et le reste... C'est la caca, c'est la cata, c'est la... mémerde...
Cordialement
Marsh Posté le 19-02-2010 à 19:24:51
Bonjour,
je cherche à modifier automatiquement la cellule de recherche.
je vais essayer d'être le plus clair possible.
Je souhaite lier automatiquement trois fichiers excel.
Je précise.
J'ai trois fichiers excel qui se nomme EA1, EA2 et EA3. Deux cellules de EA 3 vont pointer une cellule de EA1 et de EA2 (exemple : [EA1].A12 et [EA2].C10) pour récupérer la donnée.
Je souhaiterais que lorsque j'enregistre EA3 sous EA4, [EA1].A12 se transforme en [EA2].A12 et [EA2].C10 en [EA3].C10.
De plus, je souhaiterais que lorsque je suis au niveau de EA1, [EA1].A12=0 et [EA2].C10=0 et lorsque je suis au niveau de EA2, [EA1].A12 pointe bien cette cellule et [EA2].C10=0.
---------------------------------------------------------------------------
Mais, j'ai peut être une autre idée :
- Créer un bouton "démarrer" qui ouvre une boîte de dialogue.
- le premier message doit être "entrer la tva n-2". L'utilisateur entre le chiffre.
Ce chiffre se met, par exemple dans la cellule A4 de la feuille 1.
Si l'utilisateur ne rentre pas un chiffre, il lui repose la question. Si l'utilisateur entre un chiffre et qu'il clique sur suivant, le fichier lui demande la donnée suivante "entrer le CA n-1".
L'utilsateur entre un chiffre. Ce chiffre entré se met dans la case B6 de la feuille 2.
A la dernière donnée, un bouton terminer apparaît et ferme la boîte de dialogue.
L'utilisateur voit le fichier excel rempli.
- Il l'enregistre et peut l'ouvrir un peu plus tard sans avoir à entrer de nouveau les données.
Si tu as un exemple de code et surtout des explications, je suis preneur car je suis débutant.
J'ai télécharger des cours sur le web mais je n'ai pas encore fini de tout lire.
A choisir, je préfère ma deuxième idée car si l'utilisateur bouge le fichier, il conserve les données entrées.
Merci de ton aide.
Marsh Posté le 22-02-2010 à 12:09:13
Hello
Pour récupérer des valeurs dans des fichiers avec des nombres dans le nom du fichier, c'est "assez simple juste" avec des formules, et donc sans code.
A savoir :
Exemple :
- en A1 : ="A2" (Ce qui va ecrire "A2" en A1)
- En A2 : 25
- En A3 : =Indirect(A1) (Il va renvoyer 25, puisqu'en A1 on a saisi A2, et en A2 on a 25)
=STXT(CELLULE("filename";A1);TROUVE("[";CELLULE("filename";A1))+1;SOMME(TROUVE({"[";"]"};CELLULE("filename";A1))*{-1;1})-1)
- Dans notre cas, ca renverra : EA3.xls
=GAUCHE(STXT("EA3.xls";3;100);1)-2 Renvoi 1 (Et si on avait saisi EA4.xls ca renverrait 2 etc.)
- Donc en ajoutant les chaines "EA" au début et ".xls" a la fin de la chaine :
="EA" & (GAUCHE(STXT("EA3.xls";3;100);1)-2) & ".xls" renvoi EA1.xls (Et si on avait saisi EA4.xls ca renverrait EA2.xls etc.)
- Donc avec le nom du classeur en cours, calculé comme plus haut, on va créer la chaine EA1.xls :
="EA" & (GAUCHE(STXT(STXT(CELLULE("filename";A1);TROUVE("[";CELLULE("filename";A1))+1;SOMME(TROUVE({"[";"]"};CELLULE("filename";A1))*{-1;1})-1);3;100);1)-2) & ".xls" renvoi EA1.xls (Et si notre fichier en cours etait EA4.xls ca renverrait EA2.xls etc.)
On a donc trouver comment récupérer un fichier "N-2" a partir du nom du fichier en cours.
Ce qui fait, avec en rouge le N-X et en bleu la cellule sur laquelle on pointe :
=INDIRECT("[EA" & GAUCHE(STXT(STXT(CELLULE("filename";A1);TROUVE("[";CELLULE("filename";A1))+1;SOMME(TROUVE({"[";"]"};CELLULE("filename";A1))*{-1;1})-1);3;100);1)-2 & ".xls]Feuil1!$A$12" )
=INDIRECT("[EA" & GAUCHE(STXT(STXT(CELLULE("filename";A1);TROUVE("[";CELLULE("filename";A1))+1;SOMME(TROUVE({"[";"]"};CELLULE("filename";A1))*{-1;1})-1);3;100);1)-1 & ".xls]Feuil1!$C$10" )
Cordialement
Marsh Posté le 22-02-2010 à 21:24:27
Bonsoir,
je vous remercie pour ce code. Je vais le tester.
Cependant, y a t-il moyen de modifier le pointage lorsque on enregistre sous un autre nom, c'est à dire si sous le fichier EA3, la cellule de la feuille 1 pointait sur EA2.A12, comment faire si j'enregistre ce fichier (EA3) sous EA4 pour que la même cellule pointe maintenant sur EA3.A12.
Merci par avance.
Cordialement.
Marsh Posté le 23-02-2010 à 14:27:05
Bah ca se fait tout seul, il suffit de lire l'explication dans le post précédent...
Marsh Posté le 16-02-2010 à 20:36:48
Bonjour,
je vais essayer d'être le plus clair possible. Je souhaite lier automatiquement trois fichiers excel. Je précise. J'ai trois fichiers excel qui se nomme EA1, EA2 et EA3. EA 3 va pointer une cellule de EA1 et de EA2 (exemple : [EA1].A12 et [EA2].C10) pour récupérer la donnée. Je souhaiterais que lorsque j'enregistre EA3 sous EA4, [EA1].A12 se transforme en [EA2].A12 et [EA2].C10 en [EA3].C10.
De plus, je souhaiterais que lorsque je suis au niveau de EA1, [EA1].A12=0 et [EA2].C10=0 et lorsque je suis au niveau de EA2, [EA1].A12 pointe bien cette cellule et [EA2].C10=0.
Je ne sais pas si cela est possible. J'espère avoir été assez clair.
Est ce que quelqu'un peux me renseigner sur ces points?
D'avance, merci.