Combinaison de données en un seul fichier
Bonjour et bonne année à tous (il reste encore 2 jours pour le souhaiter).
J'ai un petit problème qui sera surement peut pour beaucoup d'entre vous.
Je dois combiner un grand nombre de données issues de fichiers Excel en un même fichier. A savoir que ces fichiers se trouvent tous dans le même dossier et que les données à récupérer se situent également aux même emplacement dans chaque fichier.
A l'aide de différentes recherches j'ai pu écrire le code ci-dessous mais malheureusement cela ne fonctionne pas et la seule action que ce dernier réalise est de m'ajouter une feuille dans le classeur.
'
Sub CombineMultipleExcelFiles()
Dim SummarySheet As Worksheet
Dim SourceSheet As Worksheet
Dim FolderPath As String
Dim FileName As String
Dim LastRow As Long
Dim LastColumn As Long
'Créer une nouvelle feuille de résumé
Set SummarySheet = ThisWorkbook.Sheets.Add
'Définir le chemin du dossier contenant les fichiers Excel à combiner
FolderPath = "C:Users\loris.cadau\OneDrive - Eramet SA\Entreprise\TTh\Dressage\Données presse\Ligne 22 Armement_Nexter Systems\Tube 155\"
'Obtenir la liste de tous les fichiers Excel dans le dossier
FileName = Dir(FolderPath & "*.xlsx")
'Boucle à travers chaque fichier Excel dans le dossier
Do While FileName <> ""
'Ouvrir le fichier Excel actuel
Workbooks.Open (FolderPath & FileName)
'Définir la feuille source à la première feuille du fichier ouvert
Set SourceSheet = Workbooks(FileName).Sheets(1)
'Trouver la dernière ligne et la dernière colonne de la feuille source
LastRow = SourceSheet.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
LastColumn = SourceSheet.Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
'Copier toutes les données de la feuille source dans la feuille de résumé
SourceSheet.Range(SourceSheet.Cells(1, 1), SourceSheet.Cells(LastRow, LastColumn)).Copy _
Destination:=SummarySheet.Cells(SummarySheet.Cells(SummarySheet.Rows.Count, 1).End(xlUp).Row + 1, 1)
'Fermer le fichier Excel actuel
Workbooks(FileName).Close
'Obtenir le nom du prochain fichier Excel dans le dossier
FileName = Dir()
Loop
'Afficher un message pour indiquer que le processus est terminé
MsgBox "Les fichiers Excel ont été combinés avec succès!", vbInformation
End SubJe vous avoue que je bloque un peu, pour information voici la structure des fichiers sources (également disponible en PJ) :
Merci par avance pour votre aide.
Cordialement, Loris.
Bonjour
On voit la source (du moins une) mais pas la cible. Tu récupères ce qui en bleu seulement ?
Bonjour
Il est possible de vérifier à chaque étape si les variables sont bien remplies
par exemple
1) dernière la ligne
Workbooks.Open (FolderPath & FileName)
Ajouter une ligne
debug.Print " Dossier= " & FolderPath & " filename=" & Filename
2) Derriere les lignes
Lastrow= ...
LastColumn= ...Ajouter la ligne
debug.Print "Ligne=" & LastRow & " colonne=" & LastColumn & " Destination = " & SummarySheet.Cells(SummarySheet.Rows.Count, 1).End(xlUp).Row
Observer la fenetre "Exécution"