OVH Cloud OVH Cloud

lecture et tri

2 réponses
Avatar
Jerome
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

2 réponses

Avatar
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.

Avatar
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