Bonjour le Forum!
Je possède 2 fichiers excel et j'aimerai les fusionner pour n'en faire qu'un..
Auriez-vous une petite macro histoire de mettre sur la voie ?
Merci d'avance à ceux qui répondrons!
![]()
![]()
![]()
Bonjour le Forum!
Je possède 2 fichiers excel et j'aimerai les fusionner pour n'en faire qu'un..
Auriez-vous une petite macro histoire de mettre sur la voie ?
Merci d'avance à ceux qui répondrons!
![]()
![]()
![]()
Bonjour,
Supposons que tu aies 2 classeurs
Forum 29 Juillet 1.xls et Forum 29 Juillet 2.xls
et que tu souhaites intégrer le 1er classeur dans le 2ème au seul niveau des feuilles de calcul.
A placer dans un module de Forum 29 Juillet 1.xls
A adapter.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub Copie_Feuilles() Dim wk As Worksheet With Workbooks("Forum 29 Juillet 2.xls") For Each wk In Worksheets wk.Copy After:=.Sheets(.Sheets.Count) Next .Save End With End Sub
Cordialement.
Marcel.
Merci Marcel de vous intéressez à mon problème!
Je pense m'être mal exprimée dans mon premier post, en effet je souhaite fusionner mes 2 fichiers excel dans un nouveau classeur.
Pensez-vous cela possible ...
merci
PS: Je tiens à rappeler que je suis débutant dans ce domaine!![]()
Pas de problème.
Il suffit d'utiliser "SaveAs" (enregistrer sous) au lieu de Save (enregistrer), ce qui donne
A adapter si besoin.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Sub Copie_Feuilles() Dim wk As Worksheet With Workbooks("Forum 29 Juillet 2.xls") For Each wk In Worksheets wk.Copy After:=.Sheets(.Sheets.Count) Next ChDir "Répertoire" .SaveAs Filename:= _ "Nouveau_claseur.xls" _ , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False End With End Sub
Je pars en congés, et je souhaite au Forum un bon mois d'Août.
Bon courage pour les uns. Bonnes vacances pour les autres.
Bien Cordialemnt.
Marcel.
Merci pour ton aide Marcel!
Et bonne vacances à toi !
Bonjour!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Sub Copie_Feuilles2() Dim wk As Worksheet With Workbooks("IBM_IB-Recurrent 2010-06 ESTIM vf.xls") For Each wk In Worksheets wk.Copy After:=.Sheets(.Sheets.Count) Next ChDir "C:\Documents and Settings\J6993958\My Documents\dossier test" .SaveAs Filename:= _ "Nouveau_claseur.xls" _ , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False End With End Sub
Savez-vous comment faire (à partir de ce code!) pour que se soit l'utilisateur qui rentre les fichiers à copier.
Car pour le moment je suis obligé de rentrer le nom du fichier ( ici "IBM_IB-Recurrent 2010-06 ESTIM vf.xls" )dans le code or je veut que le code soit "universelle", qu'il marche pour tout les fichiers, car le nom de fichier peut changer.
Avez-vous idée cher Forum!?![]()
Bonjour visto94,
As tu essayé avec l'instruction GetOpenFileName?
Cette instruction ouvre une boite de dialogue te permettant de selectionner les fichiers.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Application.GetOpenFilename("", , "Reflectivity File Selection", , True) 'ouverture dela boite de dialogue Open
Si tu sélectionnes plusieurs fichiers, cette instruction te renvoie un tableau.
il te faut donc déclarer un tableau
Après, tu te sers de l'instruction Open pour ouvrir les fichiers sélectionnés:
Voila,
Code : Sélectionner tout - Visualiser dans une fenêtre à part Application.Workbooks.Open
j'espère que c'est compréhensible,
Johann
Essaies avec le code suivant en l'adaptant:
Je te laisse adapter, déclarer correctement fichier_à_ouvrir et sauvegarder.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 Sub Copie_Feuilles() Dim WB as Workbook, fichier_a_traité as Workbook Dim wk As Worksheet Set WB = ThisWorkbook 'tu definis WB comme le workbook dans lequel tu travailles fichier_a_ouvrir = Application.GetOpenFilename 'ouverture d'une boite de dialogur pour selectionner ton deuxième fichier (renvoie le nom du fichier) Set fichier_a_traité= Application.Workbooks.Open(fichier_a_ouvrir) 'ouverture du fichier selectionné With fichier_a_traité For Each wk In Worksheets wk.Copy After:=.Sheets(.Sheets.Count) 'tu copies les feuilles vers WB Next End With .Close (False) 'fermeture de fichier a traite sans sauvegarde ChDir "C:\Documents and Settings\J6993958\My Documents\dossier test" .SaveAs Filename:= _ "Nouveau_claseur.xls" _ , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False End With End Sub
Pour récupérer l'emplacement du fichier, ou si tu veux enregistrer ton nouveau fichier au même emplacement que l'ancien, penses à l'instruction ".Path".
Cordialement,
Johann
Merci johannj mais cela me copie le fichier sélectionner deux fois de suite dans le " nouveau_classeur" ...
De plus à quel moment utilises-tu WB?
Après avoir modifier l'emplacement du "bloc de sauvegarde" de la manière suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 Sub Copie_Feuilles22() Dim WB As Workbook, fichier_a_traité As Workbook Dim wk As Worksheet Set WB = ThisWorkbook 'tu definis WB comme le workbook dans lequel tu travailles fichier_a_ouvrir = Application.GetOpenFilename 'ouverture d'une boite de dialogur pour selectionner ton deuxième fichier (renvoie le nom du fichier) Set fichier_a_traité = Application.Workbooks.Open(fichier_a_ouvrir) 'ouverture du fichier selectionné With fichier_a_traité ChDir "C:\Documents and Settings\J6993958\My Documents\dossier test" .SaveAs Filename:= _ "Nouveau.xls" _ , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False For Each wk In Worksheets wk.Copy After:=.Sheets(.Sheets.Count) 'tu copies les feuilles vers WB Next .Close (False) 'fermeture de fichier a traite sans sauvegarde End With End Sub
Le fichier "nouveau.xls" s'enregistre et se ferme ensuite. On peut voir, une fois le fichier "nouveau.xls" réouvert, que la macro a fonctionner maintenant comment faire pour copier un autre .xls a la suite de celui ci ( "nouveau.xls")?
Merci pour vos réponses!![]()
Partager