Importer des données de plusieurs classeurs

bobjazz

XLDnaute Impliqué
Bonjour le Forum,

Je voudrais importer des données de 3 classeurs, les feuilles sont identiques, dans un classeur destinataires.

Dans un premier temps, vider la feuille du destinataire et j’avoue que je ne sais pas comment faire pour que les données s'ajoutent les unes à la suite et non remplacées.

J’utilisais ce code pour importer 1 feuille, mais là je coince.
Code :
Sub test()
Dim classeurSource As Workbook, classeurDestination As Workbook
Set classeurSource = Application.Workbooks.Open("C:\source.xls", , True)
Set classeurDestination = ThisWorkbook
classeurSource.Sheets("Feuil1").Cells.Copy classeurDestination.Sheets("Feuil1").Range("A1")
classeurSource.Close False
End Sub

Merci d’avance

Bobjazz
 

jpb388

XLDnaute Accro
Re : Importer des données de plusieurs classeurs

bonjour a tous
à essayer
Sub test()
Dim classeurSource As Workbook, classeurDestination As Workbook, Fichier$, Filtre$
Set classeurDestination = ThisWorkbook
Filtre = "Fichiers Excel 2007-2010(*.xlsx;*.xslm),*.xlsx;*.xslm,"
Fichier = Application.GetOpenFilename(Filtre, 1, "Sélection fichier")
If Fichier = "" Then Exit Sub
Set classeurSource = Application.Workbooks.Open(Fichier)
classeurSource.Sheets("Feuil1").Range("a6:j36").Copy classeurDestination.Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
classeurSource.Close False
End Sub
 

bobjazz

XLDnaute Impliqué
Re : Importer des données de plusieurs classeurs

Bonjour jpb388

Cela fonctionne, j'ouvre mes fichiers 1 par 1, mais il faut que je vide ma feuille destinataire avant de commencer.
Mais je voudrais que chaque fois que j'importe mes données, je vide ma feuille destinataire pour pouvoir importer mes 3 fichiers à la suite( ce sont des données qui se mettent à jour), mon fichier destinataire me sert de synthèse.
Crois-tu que cela est possible, ou il faut que fasse par étape.

Merci d'avance

Bobjazz
 

bobjazz

XLDnaute Impliqué
Re : Importer des données de plusieurs classeurs

Re Bonjour jpb388 et flyonets44

Lors de mes importations, je copie bien la structure, mais quand je veux importer le 2ème fichier, j'écrase le 1er et mon souhait et de copier 3 feuilles de même structure des 3 fichiers différents à la suite, comme dans mon exemple.
J'ai bien mis ce code, mais je ne peux ouvrir qu'un fichier à la fois.

Sub test()
Feuil1.Cells.ClearContents
Dim classeurSource As Workbook, classeurDestination As Workbook, Fichier$, Filtre$
Set classeurDestination = ThisWorkbook
Filtre = "Fichiers Excel 2007-2010(*.xlsx;*.xslm),*.xlsx;*.xslm,"
Fichier = Application.GetOpenFilename(Filtre, 1, "Sélection fichier")
If Fichier = "" Then Exit Sub
Set classeurSource = Application.Workbooks.Open(Fichier)
classeurSource.Sheets("Feuil1").Range("a6:j36").Copy classeurDestination.Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
classeurSource.Close False
End Sub

Merci d'avance

Bobjazz
 

jpb388

XLDnaute Accro
Re : Importer des données de plusieurs classeurs

re
pour ouvrir plusieurs classeurs
Sub test()
Dim classeurSource As Workbook, classeurDestination As Workbook, Fichiers, Filtre$, i%
Feuil1.Cells.ClearContents
Set classeurDestination = ThisWorkbook
Filtre = "Fichiers Excel 2007-2010(*.xlsx;*.xslm),*.xlsx;*.xslm,"
Fichiers = Application.GetOpenFilename(Filtre, 1, "Sélection des fichiers", , True)
If IsArray(Fichiers) = False Then Exit Sub
For i = LBound(Fichiers) To UBound(Fichiers)
Set classeurSource = Application.Workbooks.Open(Fichiers(i))
classeurSource.Sheets("Feuil1").Range("a6:j36").Copy classeurDestination.Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
classeurSource.Close False
Next
End Sub
a+
 

bobjazz

XLDnaute Impliqué
Re : Importer des données de plusieurs classeurs

Oui je ne comprends pas effectivement sur les fichiers que j'ai mis en ligne cela fonctionne et quand je l'adapte sur celui qui doit fonctionner, BUG
Voilà le code, si tu vois quelque chose
J'ai mis du temps j'essaie de comprendre avant d’embêter
Encore Merci
Sub MAJ()

Dim classeurSource As Workbook, classeurDestination As Workbook, Fichiers, Filtre$, i%
Feuil1.Cells.ClearContents
Set classeurDestination = ThisWorkbook
Filtre = "Fichiers Excel 2007-2010(*.xlsx;*.xslm),*.xlsx;*.xslm,"
Fichiers = Application.GetOpenFilename(Filtre, 1, "Sélection des fichiers", , True)
If IsArray(Fichiers) = False Then Exit Sub
For i = LBound(Fichiers) To UBound(Fichiers)
Set classeurSource = Application.Workbooks.Open(Fichiers(i))
classeurSource.Sheets("Saisie CR").Range("a6:q36").Copy classeurDestination.Sheets("Saisie CR").Range("A" & Rows.Count).End(xlUp).Offset(5, 0)
classeurSource.Close False
Next

End Sub
 

jpb388

XLDnaute Accro
Re : Importer des données de plusieurs classeurs

re
mets cette phrase à la place de l'autre
Filtre = "Fichiers Excel 2007-2010(*.xlsx;*.xlsm),*.xlsx;*.xlsm,"
je ne vois rien de particulier
si ce n'est pas trop confidentiel envoie moi le 3eme celui qui bug pour voir si je peux l'ouvrir
en éliminant les problèmes 1 par 1 on devrait trouver
a+
 

bobjazz

XLDnaute Impliqué
Re : Importer des données de plusieurs classeurs

Re

J'ai essayé plusieurs choses, mais toujours le même résultat.
Je met une partie de mes fichiers, tu verras mieux que moi

Merci d'avance

Bobjazz
 

Pièces jointes

  • Test.zip
    133 KB · Affichages: 64
  • Test.zip
    133 KB · Affichages: 62
  • Test.zip
    133 KB · Affichages: 70

jpb388

XLDnaute Accro
Re : Importer des données de plusieurs classeurs

re
dans les exemples la colonne A était utilisé mais pas dans les classeurs réels
mets cette ligne à la place de l'autre
classeurSource.Sheets("Feuil1").Range("b6:q36").Copy classeurDestination.Sheets("Feuil1").Range("a" & Rows.Count).End(xlUp).Offset(1, 0)
ou b6 à la place de a6
a+
 

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 097
Membres
103 116
dernier inscrit
kutobi87