Reunir plusieurs onglets de fichier differents

Manu62

XLDnaute Impliqué
Bonjour,

J'ai plusieurs fichiers excel avec pour tous 1 seul onglet de compléter.
les tableaux sont tous les mêmes sauf le nom de l'onglet.

Est t'il possible dans un fichier principal de réunir tous les onglets des classeurs.

Les fichiers sont stockés dans 1 même et seul répertoire.

Merci de vos lumières

Manu
 

Manu62

XLDnaute Impliqué
Re : Reunir plusieurs onglets de fichier differents

Bjr,

J ai les colonnes de A a H qui sont identiques dans chaque fichiers.

Il y a 60 fichiers avec des noms complètement différents.

Les onglets ont les mêmes noms des fichiers. Il ya q un seul onglet dans chaque fichier.

Je souhaite avoir un fichier principal qui reprend tous les onglets des autres fichiers.

Eventuellement faire une syncro...

Cdt

Manu
 

camarchepas

XLDnaute Barbatruc
Re : Reunir plusieurs onglets de fichier differents

Bon ,

un petit fichier exemple aurait été de bon allois

voir avec ce code à adapter Chemin , extension , cellule de début , etc puisque pas de fichier type


Code:
Sub Copie()
 Dim Classeur As String
 Dim Chemin As String
 Dim Onglet As Worksheet
 Dim LigneFin As Long, LigneFinACopier As Long
 'Exemple : Chemin à adapter
 Chemin = "C:\appli_Excel\"
 
 'Si uniquement des fichhiers xsl ou xslx , modifier l'extension en conséquence
 Classeur = Dir(Chemin & "*.xls*")
 Do
 If Classeur <> "" Then
   Application.EnableEvents = False
   Workbooks.Open Chemin & Classeur
    For Each Onglet In Workbooks(Classeur).Worksheets
     'Trouve une cellule qui est systématiquement renseigné pour l'exemple ici C13 à modifier
     If Onglet.Range("C13") <> "" Then
      LigneFin = ThisWorkbook.Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
      LigneFinACopier = Onglet.Range("A" & Rows.Count).End(xlUp).Row
       Onglet.Range("A1:H" & LigneFinACopier).Copy Destination:=ThisWorkbook.Sheets("Feuil1").Range("A" & LigneFin + 1)
     Exit For
     End If
    Next
   Workbooks(Classeur).Close False
   Application.EnableEvents = True
 End If
 Classeur = Dir
 Loop Until Classeur = ""
End Sub
 

camarchepas

XLDnaute Barbatruc
Re : Reunir plusieurs onglets de fichier differents

@ Staple : Bonjour , pas vu , merci pour ton intervention

As-tu ajusté cette ligne à ton besoin ?
Chemin = "C:\appli_Excel\" par chemin = ton chemin

si oui , quel est le message d'erreur ?
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Reunir plusieurs onglets de fichier differents

Bonjour à tous

Manu62
Tu as bien pensé à faire l'adaptation nécessaire ?
'Exemple : Chemin à adapter
Chemin = "C:\appli_Excel\"

Il faut mettre le chemin de ton propre dossier sur ton PC.

EDITION: Houps! désolé camarchepas , j'ai pas rafraichi la page avant de poster.
 

Manu62

XLDnaute Impliqué
Re : Reunir plusieurs onglets de fichier differents

Il manque le x de xlsx
Je m'en excuse par avance mais je n'ai pas était clair dans mon besoin (excusez moi...)
le fichier va bien me copier toutes les infos..
par contre je voudrais juste qu'il copie l'onglet du classeur 1 vers 1 nouvel onglet du classeur qui consolide...

en fait je devrais avoir un classeur principal avec 60 onglets différents ayant les noms des onglets de chaque classeurs..

oups

Manu
 

camarchepas

XLDnaute Barbatruc
Re : Reunir plusieurs onglets de fichier differents

Tu es sur de ne pas avoir de fichier xlsm , c'est à dire avec des macros , c'est pour cela que j'ai écrit .xsl* pour prendre à la fois les xlsx et xlsm .

j'attends ton retour pour modifie ce code à ton besoin ainsi précisé .
 

Manu62

XLDnaute Impliqué
Re : Reunir plusieurs onglets de fichier differents

Ci dessous le code mis avec mon fichier.

le nom de mon fichier qui recoit les infos est : Consolidation des fichiers.xlsm situé dans Z:\Emmanuel\Inventaire\31 08 2014\

Sub Copie()
Dim Classeur As String
Dim Chemin As String
Dim Onglet As Worksheet
Dim LigneFin As Long, LigneFinACopier As Long
'Exemple : Chemin à adapter
Chemin = "Z:\Emmanuel\Inventaire\31 08 2014\xls\"
'Si uniquement des fichhiers xsl ou xslx , modifier l'extension en conséquence
Classeur = Dir(Chemin & "*.xlsx*")
Do
If Classeur <> "" Then
Application.EnableEvents = False
Workbooks.Open Chemin & Classeur
For Each Onglet In Workbooks(Classeur).Worksheets
'Trouve une cellule qui est systématiquement renseigné pour l'exemple ici C13 à modifier
If Onglet.Range("C13") <> "" Then
LigneFin = ThisWorkbook.Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
LigneFinACopier = Onglet.Range("A" & Rows.Count).End(xlUp).Row
Onglet.Range("A1:H" & LigneFinACopier).Copy Destination:=ThisWorkbook.Sheets("Feuil1").Range("A" & LigneFin + 1)
Exit For
End If
Next
Workbooks(Classeur).Close False
Application.EnableEvents = True
End If
Classeur = Dir
Loop Until Classeur = ""
End Sub

Merci

Manu
 

camarchepas

XLDnaute Barbatruc
Re : Reunir plusieurs onglets de fichier differents

Code:
Sub Copie()
Dim Classeur As String
Dim Chemin As String
Dim Onglet As Worksheet
Dim LigneFin As Long, LigneFinACopier As Long
'Exemple : Chemin à adapter
Chemin = "Z:\Emmanuel\Inventaire\31 08 2014\xls\"
'Si uniquement des fichhiers xsl ou xslx , modifier l'extension en conséquence
Classeur = Dir(Chemin & "*.xlsx") ' ici le * aprés le xlsx n'est donc plus nécessaire , j'ai enlevé
Do
If Classeur <> "" Then
Application.EnableEvents = False
Workbooks.Open Chemin & Classeur
For Each Onglet In Workbooks(Classeur).Worksheets
'Trouve une cellule qui est systématiquement renseigné pour l'exemple ici C13 à modifier
     If Onglet.Range("C13") <> "" Then
     
      'Ajout de la création de l'onglet
      ThisWorkbook.Worksheets.Add
      ThisWorkbook.ActiveSheet.Name = Onglet.Name
      LigneFinACopier = Onglet.Range("A" & Rows.Count).End(xlUp).Row
       Onglet.Range("A1:H" & LigneFinACopier).Copy Destination:=ThisWorkbook.Sheets("Feuil1").Range("A1")
     Exit For
     End If
Next
Workbooks(Classeur).Close False
Application.EnableEvents = True
End If
Classeur = Dir
Loop Until Classeur = ""
End Sub
 

Manu62

XLDnaute Impliqué
Re : Reunir plusieurs onglets de fichier differents

Pas mal !!!

un petit beug : mon dernier fichier intégré ne m'ajoute pas les données seulement l'onglet.

peu t'on trier les onglets une fois le traitement terminé

cdt

Manu
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 429
Messages
2 088 352
Membres
103 824
dernier inscrit
frederic.marien@proximus.