flosauveur69
XLDnaute Occasionnel
Bonjour,
Suite à la macro ci-dessous, je récupère dans un fichier mère des plages de cellules dans plusieurs fichiers fils qui sont dans des sous répertoire du même répertoire. Pour ce faire la macro ouvre chaque fichier fils, récupère la plage et ferme le fichier.
Le nombre de fichiers fils augmente de jour en jour. Donc à chaque fois que je lance la macro, elle me récupère les plages de cellule dans les fichiers où elles ont déjà été récupéré en plus de nouveaux fichiers.
Si c'est réalisable (et je pense) je voudrais donc qu'elle me récupère uniquement les plages de cellule dans les fichiers fils nouveaux. C'est à dire ceux où la plage de cellule n'a pas déjà été recopié et qu'elle me colle les nouveaux plages à la suite des anciennes.
Merci d'avance.
voici ma macro actuelle qui dès que je la lance me copie par dessus les anciennes plages, ces mêmes plages en plus des nouvelles
Private Sub cmdRecupere_Click()
Dim intFile As Integer
Dim strWB As String
Dim strFile As String
Dim lgDerLig As Long
Application.ScreenUpdating = False
Application.EnableEvents = False
' Nom du classeur actuel
strWB = ThisWorkbook.Name
lgDerLig = 2
' Récupération du premier fichier dans le répertoire et sous repertoire
strFile = Dir(ThisWorkbook.Path & "\SousRepertoire\*.xls")
' Boucle du 1er au dernier classeur dans le répertoire et sous repertoire
Do While strFile <> ""
' Si le classeur n'est pas "Total.xls"
If strFile <> strWB Then
' Ouvrir le fichier
Workbooks.Open ThisWorkbook.Path & "\" & strFile
' Sélectionner le 1er onglet
ActiveWorkbook.Worksheets(1).Activate
' Copier la sélection dans le classeur
Worksheets(1).Range("A13:B28").Copy Destination:=Workbooks(strWB).Worksheets("Feuil1").Range("A" & lgDerLig)
lgDerLig = lgDerLig + 15
' Fermeture du classeur
Workbooks(strFile).Close
End If
' Classeur suivant
strFile = Dir
Loop
MsgBox "Le traitement des fichiers est terminé.", vbInformation, "Traitement..."
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Suite à la macro ci-dessous, je récupère dans un fichier mère des plages de cellules dans plusieurs fichiers fils qui sont dans des sous répertoire du même répertoire. Pour ce faire la macro ouvre chaque fichier fils, récupère la plage et ferme le fichier.
Le nombre de fichiers fils augmente de jour en jour. Donc à chaque fois que je lance la macro, elle me récupère les plages de cellule dans les fichiers où elles ont déjà été récupéré en plus de nouveaux fichiers.
Si c'est réalisable (et je pense) je voudrais donc qu'elle me récupère uniquement les plages de cellule dans les fichiers fils nouveaux. C'est à dire ceux où la plage de cellule n'a pas déjà été recopié et qu'elle me colle les nouveaux plages à la suite des anciennes.
Merci d'avance.
voici ma macro actuelle qui dès que je la lance me copie par dessus les anciennes plages, ces mêmes plages en plus des nouvelles
Private Sub cmdRecupere_Click()
Dim intFile As Integer
Dim strWB As String
Dim strFile As String
Dim lgDerLig As Long
Application.ScreenUpdating = False
Application.EnableEvents = False
' Nom du classeur actuel
strWB = ThisWorkbook.Name
lgDerLig = 2
' Récupération du premier fichier dans le répertoire et sous repertoire
strFile = Dir(ThisWorkbook.Path & "\SousRepertoire\*.xls")
' Boucle du 1er au dernier classeur dans le répertoire et sous repertoire
Do While strFile <> ""
' Si le classeur n'est pas "Total.xls"
If strFile <> strWB Then
' Ouvrir le fichier
Workbooks.Open ThisWorkbook.Path & "\" & strFile
' Sélectionner le 1er onglet
ActiveWorkbook.Worksheets(1).Activate
' Copier la sélection dans le classeur
Worksheets(1).Range("A13:B28").Copy Destination:=Workbooks(strWB).Worksheets("Feuil1").Range("A" & lgDerLig)
lgDerLig = lgDerLig + 15
' Fermeture du classeur
Workbooks(strFile).Close
End If
' Classeur suivant
strFile = Dir
Loop
MsgBox "Le traitement des fichiers est terminé.", vbInformation, "Traitement..."
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub