Exploiter deux fichier Excel grace à VBA

Résolu
DjVen Messages postés 17 Date d'inscription mardi 2 mars 2010 Statut Membre Dernière intervention 30 mars 2010 - 5 mars 2010 à 11:58
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

5 réponses

Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
8 mars 2010 à 08:35
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
3
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
5 mars 2010 à 17:27
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
0
DjVen Messages postés 17 Date d'inscription mardi 2 mars 2010 Statut Membre Dernière intervention 30 mars 2010
7 mars 2010 à 21:26
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...
0
DjVen Messages postés 17 Date d'inscription mardi 2 mars 2010 Statut Membre Dernière intervention 30 mars 2010
7 mars 2010 à 21:52
Et pareillement, le fichier de départ n'est pas toujours dans le même répertoire...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
Nickel, désolé pour l'attente mais ça ma bien dépanné. Merci beaucoup
0
Rejoignez-nous