Récapitulatif de fichier
Bonjour,
Etant nouveaux sur le forum veuillez m'excuser par avance si je fais certaines erreurs, si cela est le cas dites le moi que je puisses les corriger.
Je débute sur les macros excel et ayant fais quelques heures de recherche et ne trouvant pas de solutions à mon problème me voici.
J'ai environs 100 fichiers excel à ma disposition et j'aimerais faire un récapitulatif de tous dans un classeur
Je m'explique dans la colonne B j'aimerais avoir tout les noms des Classeurs, dans la colonne C tous les noms des feuilles associées aux fichiers etc... ( dans cette Macro seule les colonnes B et C m’intéresse)
Pour ce faire j'ai créer un dossier avec 4 classeurs dont chacun à un nombre de feuilles différentes.
J'ai donc réaliser la macro suivante qui malheureusement ne m'affiche que les deux premiers fichiers avec leurs classeurs et j'aimerais comprendre pourquoi donc si une âme charitable aurait l’obligeance de m'aider ce serait chouette !!!
En vous remerciant par avance !!!
Sub Test()
Dim Chemin, Fichier As String
Dim i, c, k, H As Long
recap = "U:\...\Recap.xlsm"
Chemin = "U:\...\test\"
Fichier = Dir(Chemin)
Sheets("Feuil1").Select
Range("C2").Select
' Fonction de mise en place nom
c = 2
Do While Fichier <> ""
Range("B" & c) = Fichier
Fichier = Dir()
Nom = Chemin & Sheets("Feuil1").Range("B" & c)
Workbooks.Open Nom, ReadOnly:=True
H = Sheets.Count
For i = 1 To H
k = c + i - 1
Workbooks(Dir(recap)).Sheets("Feuil1").Range("C" & k) = Sheets(i).Name
Next i
Workbooks(Dir(Nom)).Close
c = c + i - 1
Loop
End SubBonjour NoursBegin, bonjour le forum,
Peut-être comme ça (à placer dans le classeur Recap.xlsm) :
Sub Test()
Dim CD As Workbook 'déclare la variable CD (Classeur Destination)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Dim CH As String 'déclare la variable CH (CHemin)
Dim F As String 'déclare la variable F (Fichiers)
Dim I As Integer 'déclare la variable I (Incrément)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)
Set CD = ThisWorkbook 'définit le classeur destination CD
Set OD = CD.Worksheets("Feuil1") 'définit l'onglet destination OD
CH = "U:\...\test\" 'définit le chemin CH
F = Dir(CH) 'définit le premier fichier du dossier CH
Do While F <> "" 'boucle tant qu'il existe des fichiers
Workbooks.Open (CH & F) 'ouvre le fichier
Set CS = ActiveWorkbook 'définit le classeur source CS
'définit la cellule de destination DEST (C1, si C1 est vide, sinon la première cellule vide de la colonne C de l'onglet OD)
Set DEST = IIf(OD.Range("C1").Value = "", OD.Range("C1"), OD.Range("C" & Application.Rows.Count).End(xlUp).Offset(1, 0))
DEST.Offset(0, -1).Value = CH & F 'renvoie le nom complet dans DEST décalée d'une colonne à gauche
For I = 1 To CS.Sheets.Count 'boucle sur tous les onglets I du classeur source
'définit la cellule de destination DEST (C1, si C1 est vide, sinon la première cellule vide de la colonne C de l'onglet OD)
Set DEST = IIf(OD.Range("C1").Value = "", OD.Range("C1"), OD.Range("C" & Application.Rows.Count).End(xlUp).Offset(1, 0))
DEST.Value = CS.Sheets(I).Name 'renvoie dans la colonne C le nom de l'onglet
Next I 'prochain onglet de la boucle
CS.Close False 'ferme le classeur CS sans enregistrer les changements
F = Dir() 'passe au fichier suivant du dossier CH
Loop 'boucle
End SubMerci beaucoup ThauTheme,
Macro qui marche niquel même si je ne comprends pas tout je vais me plonger dedans et modifier deux trois trucs
Mille merci et bonne fin de soirée à toi