Exploiter deux fichier Excel grace à VBA [Résolu]

Messages postés
17
Date d'inscription
mardi 2 mars 2010
Statut
Membre
Dernière intervention
30 mars 2010
- - Dernière réponse : DjVen
Messages postés
17
Date d'inscription
mardi 2 mars 2010
Statut
Membre
Dernière intervention
30 mars 2010
- 16 mars 2010 à 18:49
Je suis désolé de sollicité encore une fois votre aide, je suis vraiment pas doué. Je suis sous VBA/Excel et j'ai donc deux fichier EXCEL d'ouvert. Le problème est le suivant, comment puis-je copier la ligne i du de la feuille 1 du classeur B sur la ligne J de la feuille 1 du classeur A a partir d'un bouton situé sur la feuille 2 du classeur A. Voila il faut suivre, mais je pense que c'est plutôt clair.

Merci d'avance
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
4
3
Merci
Et bien, tu mets le nom du fichier en variable.

Au lieu de :
Workbooks("Classeur1.xls") ...
Tu peux faire :

dim MonClasseur as workbook
set MonClasseur = "Classeur1".xls

MonClasseur.Worksheets ...

ca fonctionne aussi avec les feuilles donc.

Par contre, à toi d'alimenter la variable en fonction des choix de l'utilisateur, rien de bien compliqué.

Molenn

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 137 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Molenn
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
4
0
Merci
Ce qu'il faut, c'est différencier tes classeurs et faire explicitement référence au classeur et à la feuille qui t'intéresse dans ton code.


Pour copier le contenu d'une cellule A1 de la feuille Feuil1 du Classeur1 vers la cellule C2 de la Feuil2 du Classeur2, la logique est la suivante (à condition que les 2 classeurs soient ouverts) :

Workbooks("Classeur2.xls").Worksheets("Feuil2").Cells(2,3).value = Workbooks("Classeur1.xls").Worksheets("Feuil1").Cells(1,1).value


Après, si tu as besoin de le faire souvent, tu peux déclarer des variables pour te simplifier le code.
Personnellement, ce que je ferai :
'Définition des variables
Dim FeuilleSource as worksheet
Dim FeuilleCible as worksheet

'Initialisation des variables
Set FeuilleSource = Workbooks("Classeur1.xls").Worksheets("Feuil1")
Set FeuilleCible = Workbooks("Classeur2.xls").Worksheets("Feuil2")

'Copie des données
FeuilleCible.cells(2,3).value = FeuilleSource.cells(1,1).value



Molenn
Commenter la réponse de Molenn
Messages postés
17
Date d'inscription
mardi 2 mars 2010
Statut
Membre
Dernière intervention
30 mars 2010
0
Merci
Merci mais le problème c'est que le classeur d'où l'on prend les données n'est pas toujours le même et donc le nom chance en fonction de se que veut l'utilisateur...
Commenter la réponse de DjVen
Messages postés
17
Date d'inscription
mardi 2 mars 2010
Statut
Membre
Dernière intervention
30 mars 2010
0
Merci
Et pareillement, le fichier de départ n'est pas toujours dans le même répertoire...
Commenter la réponse de DjVen
Messages postés
17
Date d'inscription
mardi 2 mars 2010
Statut
Membre
Dernière intervention
30 mars 2010
0
Merci
Nickel, désolé pour l'attente mais ça ma bien dépanné. Merci beaucoup
Commenter la réponse de DjVen