Afin de faire un suivi de données, j'ai besoin de construire une macro qui
ouvre un par un les fichiers d'un répertoire pour compter, en fonction de
différents seuils, le nombre de données dans une colonne spécifique.
Je suis un peu dépassé par ce truc, pourriez-vous me donner des indications
pour faciliter de ce travail ?
Merci d'avance
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
pascal engelmajer
Bonjour Jérôme, tu peux trouver, sur Excelabo par exemple, des macros pour lister le contenu d'un répertoire, ainsi que de nombreux exemples d'ouverture de fichiers ( Excel ? ) Un extrait (moi même, emcy, M. Pierron) Sub scanneFic() Dim fichier, rep, nomFic ' Renvoie le nom de fichier avec l'extension indiquée. Si plusieurs ' fichiers *.xls existent, le premier fichier trouvé est renvoyé. fichier = dir("C:TEST*.JPG") Do Debug.Print fichier fichier = dir ' Appelle de nouveau Dir sans argument pour renvoyer le ' fichier *.XLS suivant dans le même dossier. Loop Until fichier = "" End Sub Sub scanneFicEmcy() Dim fichier As String Dim rep As String Dim tFic() As String 'on pourrait utiliser une collection Dim Ext As String Dim nbFic As Long ' Renvoie le nom de fichier avec l'extension indiquée. Si plusieurs ' fichiers *.xls existent, le premier fichier trouvé est renvoyé. rep = "C:TEST" Ext = "sch" fichier = dir(rep & "*." & Ext) Do Until fichier = "" nbFic = nbFic + 1 ReDim tFic(nbFic) tFic(nbFic) = rep & fichier Debug.Print rep & fichier Debug.Print tFic(nbFic) fichier = dir ' Appelle de nouveau Dir sans argument pour renvoyer le ' fichier *.EXT suivant dans le même dossier. Loop End Sub Sub scanneFicPierron() Dim fichier, rep, nomFic ' Renvoie le nom de fichier avec l'extension indiquée. Si plusieurs ' fichiers *.xls existent, le premier fichier trouvé est renvoyé. fichier = dir("C:TEST*.XLS") ' Appelle de nouveau Dir sans argument pour renvoyer le ' fichier *.XLS suivant dans le même dossier. fichier = dir ' Affiche les noms dans C:TEST représentant des dossiers. rep = "c:TEST" ' Définit le chemin d'accès. nomFic = dir(rep, vbDirectory) ' Extrait la première entrée. Do While nomFic <> "" ' Commence la boucle. ' Ignore le dossier courant et le dossier ' contenant le dossier courant. If nomFic <> "." And nomFic <> ".." Then ' Utilise une comparaison au niveau du bit pour ' vérifier que nomFic est un dossier. If (GetAttr(rep & nomFic) _ And vbDirectory) = vbDirectory Then Debug.Print nomFic ' Affiche l'entrée uniquement si elle End If ' représente un dossier. ' permet de traiter les sous-dossiers End If nomFic = dir ' Extrait l'entrée suivante. Loop End Sub ================================================ Pour la suite... si tu as des difficultés un petit coup d'enregistrement de macro.
Cordialement Pascal
Bonjour,
Afin de faire un suivi de données, j'ai besoin de construire une macro qui ouvre un par un les fichiers d'un répertoire pour compter, en fonction de différents seuils, le nombre de données dans une colonne spécifique. Je suis un peu dépassé par ce truc, pourriez-vous me donner des indications pour faciliter de ce travail ? Merci d'avance
Jérôme
-- " Il n'y a pas de vent favorable pour celui qui ne sait pas ou il va." Sénèque. http://www.ilyapa.net participez à la sauvegarde de l'Imprimerie nationale : voir rubrique typographie.
Bonjour Jérôme,
tu peux trouver, sur Excelabo par exemple, des macros pour lister le
contenu d'un répertoire, ainsi que de nombreux exemples d'ouverture de
fichiers ( Excel ? )
Un extrait (moi même, emcy, M. Pierron)
Sub scanneFic()
Dim fichier, rep, nomFic
' Renvoie le nom de fichier avec l'extension indiquée. Si plusieurs
' fichiers *.xls existent, le premier fichier trouvé est renvoyé.
fichier = dir("C:TEST*.JPG")
Do
Debug.Print fichier
fichier = dir
' Appelle de nouveau Dir sans argument pour renvoyer le
' fichier *.XLS suivant dans le même dossier.
Loop Until fichier = ""
End Sub
Sub scanneFicEmcy()
Dim fichier As String
Dim rep As String
Dim tFic() As String 'on pourrait utiliser une collection
Dim Ext As String
Dim nbFic As Long
' Renvoie le nom de fichier avec l'extension indiquée. Si plusieurs
' fichiers *.xls existent, le premier fichier trouvé est renvoyé.
rep = "C:TEST"
Ext = "sch"
fichier = dir(rep & "*." & Ext)
Do Until fichier = ""
nbFic = nbFic + 1
ReDim tFic(nbFic)
tFic(nbFic) = rep & fichier
Debug.Print rep & fichier
Debug.Print tFic(nbFic)
fichier = dir
' Appelle de nouveau Dir sans argument pour renvoyer le
' fichier *.EXT suivant dans le même dossier.
Loop
End Sub
Sub scanneFicPierron()
Dim fichier, rep, nomFic
' Renvoie le nom de fichier avec l'extension indiquée. Si plusieurs
' fichiers *.xls existent, le premier fichier trouvé est renvoyé.
fichier = dir("C:TEST*.XLS")
' Appelle de nouveau Dir sans argument pour renvoyer le
' fichier *.XLS suivant dans le même dossier.
fichier = dir
' Affiche les noms dans C:TEST représentant des dossiers.
rep = "c:TEST" ' Définit le chemin d'accès.
nomFic = dir(rep, vbDirectory) ' Extrait la première entrée.
Do While nomFic <> "" ' Commence la boucle.
' Ignore le dossier courant et le dossier
' contenant le dossier courant.
If nomFic <> "." And nomFic <> ".." Then
' Utilise une comparaison au niveau du bit pour
' vérifier que nomFic est un dossier.
If (GetAttr(rep & nomFic) _
And vbDirectory) = vbDirectory Then
Debug.Print nomFic ' Affiche l'entrée uniquement si elle
End If ' représente un dossier.
' permet de traiter les
sous-dossiers
End If
nomFic = dir ' Extrait l'entrée suivante.
Loop
End Sub
================================================ Pour la suite... si tu as des difficultés un petit coup d'enregistrement
de macro.
Cordialement
Pascal
Bonjour,
Afin de faire un suivi de données, j'ai besoin de construire une macro qui
ouvre un par un les fichiers d'un répertoire pour compter, en fonction de
différents seuils, le nombre de données dans une colonne spécifique.
Je suis un peu dépassé par ce truc, pourriez-vous me donner des indications
pour faciliter de ce travail ?
Merci d'avance
Jérôme
--
" Il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net
participez à la sauvegarde de l'Imprimerie nationale : voir rubrique
typographie.
Bonjour Jérôme, tu peux trouver, sur Excelabo par exemple, des macros pour lister le contenu d'un répertoire, ainsi que de nombreux exemples d'ouverture de fichiers ( Excel ? ) Un extrait (moi même, emcy, M. Pierron) Sub scanneFic() Dim fichier, rep, nomFic ' Renvoie le nom de fichier avec l'extension indiquée. Si plusieurs ' fichiers *.xls existent, le premier fichier trouvé est renvoyé. fichier = dir("C:TEST*.JPG") Do Debug.Print fichier fichier = dir ' Appelle de nouveau Dir sans argument pour renvoyer le ' fichier *.XLS suivant dans le même dossier. Loop Until fichier = "" End Sub Sub scanneFicEmcy() Dim fichier As String Dim rep As String Dim tFic() As String 'on pourrait utiliser une collection Dim Ext As String Dim nbFic As Long ' Renvoie le nom de fichier avec l'extension indiquée. Si plusieurs ' fichiers *.xls existent, le premier fichier trouvé est renvoyé. rep = "C:TEST" Ext = "sch" fichier = dir(rep & "*." & Ext) Do Until fichier = "" nbFic = nbFic + 1 ReDim tFic(nbFic) tFic(nbFic) = rep & fichier Debug.Print rep & fichier Debug.Print tFic(nbFic) fichier = dir ' Appelle de nouveau Dir sans argument pour renvoyer le ' fichier *.EXT suivant dans le même dossier. Loop End Sub Sub scanneFicPierron() Dim fichier, rep, nomFic ' Renvoie le nom de fichier avec l'extension indiquée. Si plusieurs ' fichiers *.xls existent, le premier fichier trouvé est renvoyé. fichier = dir("C:TEST*.XLS") ' Appelle de nouveau Dir sans argument pour renvoyer le ' fichier *.XLS suivant dans le même dossier. fichier = dir ' Affiche les noms dans C:TEST représentant des dossiers. rep = "c:TEST" ' Définit le chemin d'accès. nomFic = dir(rep, vbDirectory) ' Extrait la première entrée. Do While nomFic <> "" ' Commence la boucle. ' Ignore le dossier courant et le dossier ' contenant le dossier courant. If nomFic <> "." And nomFic <> ".." Then ' Utilise une comparaison au niveau du bit pour ' vérifier que nomFic est un dossier. If (GetAttr(rep & nomFic) _ And vbDirectory) = vbDirectory Then Debug.Print nomFic ' Affiche l'entrée uniquement si elle End If ' représente un dossier. ' permet de traiter les sous-dossiers End If nomFic = dir ' Extrait l'entrée suivante. Loop End Sub ================================================ Pour la suite... si tu as des difficultés un petit coup d'enregistrement de macro.
Cordialement Pascal
Bonjour,
Afin de faire un suivi de données, j'ai besoin de construire une macro qui ouvre un par un les fichiers d'un répertoire pour compter, en fonction de différents seuils, le nombre de données dans une colonne spécifique. Je suis un peu dépassé par ce truc, pourriez-vous me donner des indications pour faciliter de ce travail ? Merci d'avance
Jérôme
-- " Il n'y a pas de vent favorable pour celui qui ne sait pas ou il va." Sénèque. http://www.ilyapa.net participez à la sauvegarde de l'Imprimerie nationale : voir rubrique typographie.
AV
Afin de faire un suivi de données, j'ai besoin de construire une macro qui ouvre un par un les fichiers d'un répertoire
Sub Ouvre_F() Directory = "D:TEMPZZZ" With Application.FileSearch For I = 1 To .FoundFiles.Count Workbooks.Open Filename:=.FoundFiles(I) 'ton traitement '...... End With End Sub
AV
Afin de faire un suivi de données, j'ai besoin de construire une macro qui
ouvre un par un les fichiers d'un répertoire
Sub Ouvre_F()
Directory = "D:TEMPZZZ"
With Application.FileSearch
For I = 1 To .FoundFiles.Count
Workbooks.Open Filename:=.FoundFiles(I)
'ton traitement
'......
End With
End Sub
Afin de faire un suivi de données, j'ai besoin de construire une macro qui ouvre un par un les fichiers d'un répertoire
Sub Ouvre_F() Directory = "D:TEMPZZZ" With Application.FileSearch For I = 1 To .FoundFiles.Count Workbooks.Open Filename:=.FoundFiles(I) 'ton traitement '...... End With End Sub