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
A voir également:
- Concaténer 2 fichiers excel.
- Concatener 2 cellules excel - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Fusionner 2 fichiers excel - Guide
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?
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
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 :
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?
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)
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 :
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é "
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
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
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
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