Concaténer 2 fichiers excel.
Julius500
-
Julius500 -
Julius500 -
Bonjour le Forum!
Je possède 2 fichiers excel et j'aimerai les fusionner pour n'en faire qu'un...
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!
Cordialement,
Julien
Je possède 2 fichiers excel et j'aimerai les fusionner pour n'en faire qu'un...
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!
Cordialement,
Julien
12 réponses
-
-
-
Oui mais il est obligé de supprimer le fichier "nouveau.xls", il efface donc le premier tableau et recopie par dessus .
Ce que je veux c'est qu'il me copie les 2 fichiers l'un a la suite de l'autre dans " nouveau.xls"
Une idée? -
Peut-etre avec un truc du genre :
Set fichier_a_traité = Application.Workbooks.Open(fichier_a_ouvrir) 'ouverture du fichier selectionné
Set fichier_ou_on_colle = Application.Workbooks.Open(chemin_fichier_nouveau_xls)
With fichier_a_traité
For Each wk In Worksheets
wk.Copy After:=fichier_ou_on_colle.Sheets(.Sheets.Count)
Next
.Close (False) 'fermeture de fichier a traite sans sauvegarde
fichier_ou_on_colle.save -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Voila ce que donne mon code :
Sub Copie_Feuilles22() Dim WB As Workbook, fichier_a_traité As Workbook Dim wk As Worksheet MsgBox " Sélectionner la Facture N" 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 '-------------------------------------------- MsgBox " Sélectionner la Facture N-2" Set fichier_a_traité = Application.Workbooks.Open(fichier_a_ouvrir) 'ouverture du fichier selectionné fichier_ou_on_colle = Application.Workbooks.Open("Nouveau.xls") With fichier_a_traité For Each wk In Worksheets wk.Copy After:=fichier_ou_on_colle.Sheets(.Sheets.Count) Next .Close (False) 'fermeture de fichier a traite sans sauvegarde fichier_ou_on_colle.Save
Malheuresement cela ne marche toujours pas a cause de la ligne "fichier_ou_on_colle = Application.Workbooks.Open("Nouveau.xls")"
PS: j'ai d'abord mis le chemin complet de Nouveau.xls, cela n'a pas marché ...
Une idée? -
il faut que tu remette un ChDir avant l'open, sinon il cherche nouveau.xls sur le repertoire courant
-
MsgBox " Sélectionner la Facture N-2" ChDir "C:\Documents and Settings\J6993958\My Documents\dossier test" Set fichier_a_traité = Application.Workbooks.Open(fichier_a_ouvrir) 'ouverture du fichier selectionné fichier_ou_on_colle = Application.Workbooks.Open(nouveau.xls) With fichier_a_traité For Each wk In Worksheets wk.Copy After:=fichier_ou_on_colle.Sheets(.Sheets.Count) Next .Close (False) 'fermeture de fichier a traite sans sauvegarde fichier_ou_on_colle.Save
Comme montrer ci-dessus j'ai rajouté un ChDir avant le Open mais il me met toujours une erreur sur cette ligne "fichier_ou_on_colle = Application.Workbooks.Open(nouveau.xls)"
Il me dit :" Erreur d'exécution '424' : Objet requis"
-
-
-
desole, je suis un peu rouillé en VB :
Workbooks.Open FileName:="chemin_fichier"
Set fichier_ou_on_colle = Workbooks(Workbooks.Count)-
Et moi dont! Bon désolé de dire ca mais cela ne marche toujours pas!
Je remet mon programme, entier, histoire de voir :
Sub Copie_Feuilles22() Dim WB As Workbook, fichier_a_traité As Workbook Dim wk As Worksheet MsgBox " Sélectionner la Facture N" 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 '-------------------------------------------- MsgBox " Sélectionner la Facture N-2" Set fichier_a_traité = Application.Workbooks.Open(fichier_a_ouvrir) 'ouverture du fichier selectionné Workbooks.Open Filename:="C:\Documents and Settings\J6993958\My Documents\dossier test" fichier_ou_on_colle = Application.Workbooks.Open("Nouveau.xls") Set fichier_ou_on_colle = Workbooks(Workbooks.Count) With fichier_a_traité For Each wk In Worksheets wk.Copy After:=fichier_ou_on_colle.Sheets(.Sheets.Count) Next .Close (False) 'fermeture de fichier a traite sans sauvegarde fichier_ou_on_colle.Save
Le message d'erreur est le suivant:
"erreur d'exécution '1004' excel ne peut pas accéder à 'dossier test'.
Le document est peut être en lecture seule ou crypté "
-
-
avec cette fonction, j'obtiens dans le fichier "nouveau.xls" toutes les feuilles des 2 fichiers ouverts via la boite de dialogue.
C'est bien ca le résultat que tu veux ? (Attention, j'ai changé tes chemins en c:\
Sub Copie_Feuilles22()
Dim WB As Workbook, fichier_a_traité As Workbook
Dim wk As Worksheet
MsgBox " Sélectionner la Facture N"
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:\"
.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
'--------------------------------------------
MsgBox " Sélectionner la Facture N-2"
Set fichier_a_traité = Application.Workbooks.Open(fichier_a_ouvrir) 'ouverture du fichier selectionné
Workbooks.Open FileName:="C:\Nouveau.xls"
Set fichier_ou_on_colle = Workbooks(Workbooks.Count)
With fichier_a_traité
For Each wk In Worksheets
wk.Copy After:=fichier_ou_on_colle.Sheets(.Sheets.Count)
Next
.Close (False) 'fermeture de fichier a traite sans sauvegarde
End With
fichier_ou_on_colle.Save
End Sub -
Oui c'est exactement ca que je veux !
Mais cela ne marche point, au lieu de me copier 2 fichiers différent il me copie le même( le premier rentré ds la boite de dialogue) 2 fois de suite dans nouveau.xls -
ce coup ci c'est la bonne :
Sub Copie_Feuilles22()
Dim WB As Workbook, fichier_a_traité As Workbook
Dim wk As Worksheet
MsgBox " Sélectionner la Facture N"
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:\"
.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
'--------------------------------------------
MsgBox " Sélectionner la Facture N-2"
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é
Workbooks.Open FileName:="C:\Nouveau.xls"
Set fichier_ou_on_colle = Workbooks(Workbooks.Count)
With fichier_a_traité
For Each wk In .Worksheets
wk.Copy After:=fichier_ou_on_colle.Sheets(.Sheets.Count)
Next
.Close (False) 'fermeture de fichier a traite sans sauvegarde
End With
fichier_ou_on_colle.Save
End Sub -
Farpait!!!!
Je te remercie beaucoup pour ton aide !!! Je peu continuer a avancer sur mon projet!
Je n'ai qu'une seule chose a dire : "MERCI!"
Julien