Lecture de fichiers Excel l'un apres l'autre dans un dossier
Bonjour,
je suis entrain de faire une macro qui me permet de traiter des fichier excel les uns après les autres, mais j'ai beaucoup de mal à déboguer. les fichier que j'aimerais traiter se trouvent dans un dossier, et ce que je fais c'est: je donne le chemin de ce dossier à ma macro et ensuite elle doit ouvrir ces fichiers, faire le traitement que je souhaite dans tous les fichier se trouvant dedans et les refermer. voici le code la partie de la macro qui bogue:
Public Sub Ouvrir_Fichiers()
Dim wbSource, wbFichierUsager As Workbook
Dim strFileName, strPath, strSpec As String
Dim strFileList() As String
Dim i, FoundFiles As Integer 'Déclarer les variables de base
Set wbFichierUsager = ThisWorkbook
' On commence par identifier le chemin où les fichiers se trouvent
strPath = "C:\Directory\Subdirectory\" ' Évidemment, ce chemin sera différent dans chaque cas
strSpec = strPath & "*.xlsx" ' Il faut spécifier l’extension des fichiers convoités
' On extrait le contenu du répertoire
strFileName = Dir(strSpec)
' Avons-nous des fichiers?
If strFileName <> " " Then
FoundFiles = 1
ReDim Preserve strFileList(1 To FoundFiles)
strFileList(FoundFiles) = strPath & strFileName
Else 'Le repertoire est vide, donc on annule tout!
MsgBox " Aucun fichier trouvé "
Exit Sub
End If
' Trouver tous les autres noms de fichiers
Do
strFileName = Dir
If strFileName = " " Then Exit Do
FoundFiles = FoundFiles + 1
ReDim Preserve strFileList(1 To FoundFiles)
strFileList(FoundFiles) = strPath & strFileName
Loop
' On fait les traitements requis pour chaque fichier
For i = 1 To FoundFiles
Workbooks.Open strFileName:=strFileList(i)
Set wbSource = ActiveWorkbookl'erreur que j'ai est se trouve se trouve juste apres le Do : strFileName = Dir , elle m'indique que: erreur d’exécution (5) l'argument ou l'appel de procédure est incorrecte. c'est la que je ne comprends pas pourquoi.
il manque la suite mais ce n'est pas important car c'est juste le traitement des fichiers ....
merci de votre aide
Bonjour
Bonne Année
A tester
Public Sub Ouvrir_Fichiers()
Dim wbFichierUsager As Workbook
Dim strFileName As String, strPath As String, strSpec As String
Application.ScreenUpdating = False
Set wbFichierUsager = ThisWorkbook
strPath = "C:\Directory\Subdirectory\" ' Évidemment, ce chemin sera différent dans chaque cas
strSpec = strPath & "*.xlsx" ' Il faut spécifier l’extension des fichiers convoités
strFileName = Dir(strSpec)
Do While strFileName <> ""
If strFileName <> wbFichierUsager.Name Then
With Workbooks.Open(strPath & strFileName)
'
' Traitement à faire dans le fichier
'
.Close savechanges:=True ' Fermeture en l'enregistrant
End With
End If
strFileName = Dir()
Loop
End Subje n'arrive pas à la faire fonctionner, la macro ne fait strictement rien.
voici tout mon code:
Public Sub Ouvrir_Fichiers()
Dim wbFichierUsager As Workbook
Dim strFileName As String, strPath As String, strSpec As String
Application.ScreenUpdating = False
Set wbFichierUsager = ThisWorkbook
strPath = "C:\Users\Desktop\dossier1" ' Évidemment, ce chemin sera différent dans chaque cas
strSpec = strPath & "*.xlsm" ' Il faut spécifier l’extension des fichiers convoités
strFileName = Dir(strSpec)
Do While strFileName <> ""
If strFileName <> wbFichierUsager.Name Then
With Workbooks.Open(strPath & strFileName)
'
' Traitement à faire dans le fichier
Set f1 = wbFichierUsager
Set f2 = w1.Sheets(" feuil2")
f2.Activate
derLn1 = f1.Cells.SpecialCells(xlCellTypeLastCell).Row
derLn2 = f2.Cells.SpecialCells(xlCellTypeLastCell).Row
For i2 = 6 To derLn2
If f2.Range("B" & i2) <> "" Then
For i1 = 3 To derLn1
If f2.Range("B" & i2) = f1.Range("A" & i1) Then
If f2.Range("C" & i2) = f1.Range("B" & i1) Then
f1.Range("B" & i1).Interior.Color = RGB(0, 255, 0)
Else
f1.Range("B" & i1).Interior.Color = RGB(255, 0, 0)
End If
End If
Next i1
End If
Next i2
.Close savechanges:=True ' Fermeture en l'enregistrant
End With
End If
strFileName = Dir()
f1.Activate 'je veux mettre en premier plan le fichier dont j'ai colorier les cases.
Loop
End SubBonjour
Comme cela je ne sais pas
C'est quoi ces variables f1,f2 et w1 ?
Il faudrait que dans une archive tu joignes ton fichier principal et 2-3 fichiers sources