Bonjour,
J'ai crée un début de macro dont l'objectif est d'aller récupérer des valeurs dans une colonne 'D' présent dans un onglet "TEST" et ceux dans plusieurs fichiers présents dans un dossier "mon_dossier".
L'idée est que ma macro se trouve dans un dossier parent de "mon_dossier" ou se trouve mes fichiers sur lequel je lance ma macro.
Mon problème dans ma macro, est pour aller récupérer cette colonne D. Le seul moyen que j'ai trouvé pour y arriver est via une boucle for qui s'ajoute à une première. Et ces deux boucle FOR, me donne une durée d'exécution de la macro vraiment très long.
Pensez vous que je peux passer outre cette seconde boucle For ?
Merci d'avance.
Merci d'avance.
J'ai crée un début de macro dont l'objectif est d'aller récupérer des valeurs dans une colonne 'D' présent dans un onglet "TEST" et ceux dans plusieurs fichiers présents dans un dossier "mon_dossier".
L'idée est que ma macro se trouve dans un dossier parent de "mon_dossier" ou se trouve mes fichiers sur lequel je lance ma macro.
Mon problème dans ma macro, est pour aller récupérer cette colonne D. Le seul moyen que j'ai trouvé pour y arriver est via une boucle for qui s'ajoute à une première. Et ces deux boucle FOR, me donne une durée d'exécution de la macro vraiment très long.
Pensez vous que je peux passer outre cette seconde boucle For ?
Merci d'avance.
VB:
Sub test()
Application.ScreenUpdating = False
Dim BoEcran As Boolean, BoBarre As Boolean, BoEvent As Boolean, BoSaut As Boolean
BoEcran = Application.ScreenUpdating
BoBarre = Application.DisplayStatusBar
iCalcul = Application.EnableEvents
BoEvent = Application.EnableEvents
BoSaut = ActiveSheet.DisplayPageBreaks
Application.ScreenUpdating = False
Application.DisplayStatusBar = False
Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False
Dim ws As Worksheet
Dim monFichier As String
Dim wb As Workbook
Dim chemin As String
Dim i As Integer
Dim nom As String
Dim FichierMain As String
Set wb = Workbooks(ThisWorkbook.Name)
Dim sh As Worksheet
chemin = ThisWorkbook.Path & "\mon_dossier\"
monFichier = Dir(chemin & "*.xlsx", vbNormal)
Do While monFichier <> ""
Debug.Print monFichier
onglet = Split(monFichier, "_")(4)
wb.Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = onglet
For Each sh In ActiveWorkbook.Worksheets
For i = 8 To 150
'J'aimerais pouvoir parcourir toutes les lignes de la colonne j=4 donc D mais cette boucle est vraiment trop longue
'TEST
j = 4
Cells(i - 4, j - 2).Formula = "='" & ThisWorkbook.Path & "\[" & monFichier & "]TEST'!R" & i & "C" & j:
Next
Next sh
monFichier = Dir
Loop
Application.ScreenUpdating = True 'Facultatif
BoEcran = Application.ScreenUpdating = BoEcran
BoBarre = Application.DisplayStatusBar = BoBarre
iCalcul = Application.EnableEvents = iCalcul
BoEvent = Application.EnableEvents = BoEvent
BoSaut = ActiveSheet.DisplayPageBreaks = BoSaut
End Sub
Merci d'avance.