Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/11/2011, 22h04   #1
Futur Membre du Club
 
Inscription : février 2011
Messages : 64
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 64
Points : 16
Points : 16
Par défaut Copier les éléments d'un fichier dans le fichier qui lance la macro

Bonjour
J'ai une macro qui est lancée par une interface dans le fichier A.xls. J'ai besoin de copier des données de la feuille B d'un fichier B.xls dans une feuille (feuille A) de A.xls.

La macro que j'ai testée est la suivante:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub COPIEBASEVG()
Dim Wbk As Workbook, Wbks As Workbook
Dim Rep As String
 
 
Rep = "C:\fichiers_travail\"
Set Wbk = Workbooks.Open(Rep & "B.xls")
Set Wbks = Workbooks.Open(Rep & "A.xls")
 
Wbks.Worksheets("feuilleA").Range("C9:F14").Value = Wbk.Worksheets("feuilleB").Range("A2:D7").Value
 
Wbk.Close False
Wbks.Close True
Set Wbk = Nothing
Set Wbks = Nothing
End Sub
Si le fichier A.xls n'est pas le fichier depuis lequel on lance la macro cela fonctionne. Sinon, il ne se passe rien. Merci pour votre aide.
hobine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 22h07   #2
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub COPIEBASEVG()
Dim Wbk As Workbook
Dim Rep As String
 
 
Rep = "C:\fichiers_travail\"
Set Wbk = Workbooks.Open(Rep & "B.xls")
 
ThisWorkbook.Worksheets("feuilleA").Range("C9:F14").Value = Wbk.Worksheets("feuilleB").Range("A2:D7").Value
 
Wbk.Close False
Wbks.Close True
Set Wbk = Nothing
End Sub
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/11/2011, 22h08   #3
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
bonsoir,

ben si ton fichier A contient ta macro tu n'as pas besoin de l'ouvrir il est déjà ...

remplace :
Code :
Set Wbks = Workbooks.Open(Rep & "A.xls")
par
Code :
Set Wbks = ThisWorkBook
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 22h14   #4
Futur Membre du Club
 
Inscription : février 2011
Messages : 64
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 64
Points : 16
Points : 16
Merci, cela résout le problème
hobine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 22h27   #5
Futur Membre du Club
 
Inscription : février 2011
Messages : 64
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 64
Points : 16
Points : 16
et comment faire si je veux ouvrir un second, (troisième, ..) fichier pour aller copier d'autres donnés et ajouter directement en dessous des données précédentes du fichier A?

merci par avance
hobine est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h29.


 
 
 
 
Partenaires

Hébergement Web