Réunir plusieurs fichiers excel dans un seul

cedric125

XLDnaute Nouveau
Bonjour

J'ai plusieurs fichiers excel dans un même dossier , chaque fichier a plusieurs onglets
la structure des fichiers est identique et je souhaite compiler toutes les données dans un nouveau fichier avec un seul onglet avec les données à la suite

mon code ci dessous fonctionne uniquement pour les données du premier onglet
et pas les autres de plus il y a un bug il me copie 300 fois le premier enregistrement avant de passer au second

fichier source
Lien CJoint.com 0Jot7pxe5rK

je souhaite par chaque onglet de chaque fichier

collecter les données de la cellule A21 à G21

si quelqu’un pouvait m'aider à debuger merci d'avance


Sub ConvertirFichiersEnFeuilles()
Dim VarListeFichiers As Variant, VarFichier As Variant, WkClasseur As Workbook, WkFinal As Workbook, WsFeuille As Worksheet

VarListeFichiers = Application.GetOpenFilename(filefilter:="Classeurs eXceL,*.xls", Title:="Choisissez les Classeurs à récupérer", MultiSelect:=True)
If VarType(VarListeFichiers) = vbBoolean Then MsgBox "Abandon !": Exit Sub 'pour identifier le bouton annuler
Set WkFinal = Workbooks.Add 'générer le classeur final

For Ctr = 1 To UBound(VarListeFichiers)

Set WkClasseur = Workbooks.Open(Filename:=VarListeFichiers(Ctr))
Set WsFeuille = WkClasseur.Worksheets(1)
WsFeuille.Move before:=WkFinal.Worksheets(1)
WkClasseur.Close savechanges:=False

Next

Consolidationpourimportation

Exit Sub
End Sub



Sub Consolidationpourimportation()
Dim Lig As Long
Dim Col As String
Dim NbrLig As Long
Dim NumLig As Long

'--Suppression des messages d'alerte

Application.DisplayAlerts = False

'--Suppression des feuilles inutiles suite à l'importation



'--Copié/collé des données sur la Feuil1

For Ctr = 1 To Sheets.Count - 1
Sheets("feuil1").Activate

Col = "f" ' colonne données non vides à tester'
NumLig = 22 'alors là ca doit etre le N° de la 1er ligne de données en comptant la ligne 1 = 0 .... ? '
With Sheets(Ctr) ' feuille source'
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = 3 To NbrLig 'n° de la 1ere ligne de données'
If .Cells(Lig, Col).Value <> "" Then
.Cells(Lig, Col).EntireRow.Copy
NumLig = NumLig + 1
Sheets("feuil1").Cells(NumLig, 1).Insert Shift:=xlDown
'ici pour insérer ou .Paste pour coller'
End If
Next
End With

Next Ctr

End Sub
 
C

Compte Supprimé 979

Guest
Re : Réunir plusieurs fichiers excel dans un seul

Bonsoir Cédric125

Sujet maintes fois abordé ...
Merci de regarder dans les liens proposés dans "Discussions similaires"
et/ou d'effectuer une recherche sur le forum via google

A+
 

Discussions similaires

Statistiques des forums

Discussions
314 611
Messages
2 111 145
Membres
111 051
dernier inscrit
MANUREVALAND