Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2392 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  lier deux fichiers excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

lier deux fichiers excel

n°1966622
corsu_lm
Posté le 16-02-2010 à 20:36:48  profilanswer
 


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.  

mood
Publicité
Posté le 16-02-2010 à 20:36:48  profilanswer
 

n°1967638
SuppotDeSa​Tante
Aka dje69r
Posté le 19-02-2010 à 15:52:13  profilanswer
 

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


Message édité par SuppotDeSaTante le 19-02-2010 à 15:52:31

---------------
Soyez malin, louez entre voisins !
n°1967721
corsu_lm
Posté le 19-02-2010 à 19:24:51  profilanswer
 


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.

n°1968123
SuppotDeSa​Tante
Aka dje69r
Posté le 22-02-2010 à 12:09:13  profilanswer
 

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 :

  • La fonction indirect() te permet d'utiliser une chaine comme référence Excel.

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)
 

  • Pour recupérer le nom du classeur en cours :

=STXT(CELLULE("filename";A1);TROUVE("[";CELLULE("filename";A1))+1;SOMME(TROUVE({"[";"]"};CELLULE("filename";A1))*{-1;1})-1)
     - Dans notre cas, ca renverra : EA3.xls
 

  • Avec des fonctions qui permettent de se ballader dans le texte, on peut par exemple transformer EA3.xls en EA1.xls avec une soustraction (-2) :

=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 :

  • Pour faire pointer en A12 sur le fichier N-2 :

=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" )

  • Pour faire pointer en C10 sur le fichier N-1 :

=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


Message édité par SuppotDeSaTante le 22-02-2010 à 12:18:15

---------------
Soyez malin, louez entre voisins !
n°1968318
corsu_lm
Posté le 22-02-2010 à 21:24:27  profilanswer
 


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.

n°1968529
SuppotDeSa​Tante
Aka dje69r
Posté le 23-02-2010 à 14:27:05  profilanswer
 

Bah ca se fait tout seul, il suffit de lire l'explication dans le post précédent...  [:spamafote]


---------------
Soyez malin, louez entre voisins !

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  lier deux fichiers excel

 

Sujets relatifs
Problème Fonctionnement fichier ExcelCréer un programme de génération de fichiers son
Excel calcul sur date en VBAfichiers .vcproj et .sln
[C/C++] Transformation de fichiers[Batch] Transformation des fichiers
[Thread?] Liste de fichiersQuestion sur excel
copier données de IE vers excelProbleme incompatibilité excel 2010
Plus de sujets relatifs à : lier deux fichiers excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR