Lister les fichiers d'un répertoire en isolant 1 ou 2 extensions, trier

kariboox

XLDnaute Nouveau
Bonjour la communauté!

Je suis novice en VBA, et après des recherches et tests infructueux, j'ai décidé de m'adresser aux connaisseurs en la matière.
J'aimerais avoir une macro qui puisse lister tous les fichiers d'une ou deux extensions (en l’occurrence *.tow et *.pol) au choix du dossier courant où devra se trouver le fichier excel (du style current folder).

souhaits les plus importants :

1 - Extraction des fichiers du dossier courant (*.tow et *.pol), (avec en têtes de colonnes)
2 - dans la 1re colonne : juste le nom des fichiers sans extension
3 - dans la 2e colonne : le chemin d'accès complet du fichier avec extension (du style H:\dossiers\ss-dossiers\fichier.tow (ou.pol))
4 - pas de création de nouvel onglet ni de classeur (juste sur la feuille courante)

souhaits compliqués, donc optionnels :

5 - dans la 3e colonne : extraire le nombre entre # et .tow (je m'explique : les fichiers sont systématiquement nommés de la façon suivante : machinchose#NOMBRE.tow, le NOMBRE désigne le N° du poteau électrique. exemple : 63kV-Fléville-Nancy-c4sb-n47-5bis#23.tow où le 23 désigne le poteau n°23)

je n'ai trouvé nulle part de discussion concernant le souhait 5, donc bon, avis aux dieux d'excel :cool:
En tout cas, toute aide est la bienvenue
 

kariboox

XLDnaute Nouveau
Re : Lister les fichiers d'un répertoire en isolant 1 ou 2 extensions, trier

Alors là Papou, tu es un dieu du VBA !:cool:
en tout cas merci beaucoup!

je vais mettre les resultats en A2 pour insérer des entetes pour pouvoir faire un triage du plus petit au plus grand nombre (fichier|chemin|N°)
 

Paritec

XLDnaute Barbatruc
Re : Lister les fichiers d'un répertoire en isolant 1 ou 2 extensions, trier

Re Kariboox le forum
ton fichier modifié, pour le classement tu voulais quoi du plus petit Numéro au plus grand ou bien ????
de plus je relis ton premier post et j'ai pas retiré l'extension des noms de fichier si tu veux je le fais???
dans l'attente de ton retour
a+
papou:)
 

Pièces jointes

  • Kariboox V2.zip
    18.6 KB · Affichages: 36
Dernière édition:

kariboox

XLDnaute Nouveau
Re : Lister les fichiers d'un répertoire en isolant 1 ou 2 extensions, trier

Merci pour les entetes :))
c'est bien le triage croissant type

63kV-Fléville-Nancy-c4sb-n47-5bis#1.tow 1
63kV-Fléville-Nancy-c4sb-n49t#2.tow 2
63kV-Fléville-Nancy-h92t5#3.tow 3
63kV-Fléville-Nancy-n47-5bis#4.tow 4
63kV-Fléville-Nancy-n47-5bancien.tow (attention, il peut y avoir des fichiers sans # dans le tas, mais je les exclue de mon projet)
63kV-Fléville-Nancy-k1-n47d-5bis#5.tow 5
63kV-Fléville-Nancy-f44s#6.tow 6
63kV-Fléville-Nancy-7tk62lt#7.tow 7

etc etc, je ne sais pas si VBA le permet, au pire on filtre manuellement
 

kariboox

XLDnaute Nouveau
Re : Lister les fichiers d'un répertoire en isolant 1 ou 2 extensions, trier

au secours! malheureusement je ne peux pas exploiter le fichier, car la macro bugue lorsqu'il rencontre des fichiers sans #numéro.tow, dito message précédant ci dessus.
Du coup, peut on lui dire de prendre en compte uniquement les fichiers contenant #numéro.tow et #numéro.pol ?
voici le code :

Sub trier()
Dim Fso As Object
Dim rep$, f As Object, x&, adr$, n, t
Dim f1 As Object, f2 As Object
Set Fso = CreateObject("Scripting.FileSystemObject")
adr = ThisWorkbook.Path
ActiveSheet.Range("A2:C10000").ClearContents
x = 2
For Each f In Fso.GetFolder(adr).Files
If Right(f.Name, 4) = ".tow" Or Right(f.Name, 4) = ".pol" Then
Cells(x, 1).Value = f.Name: Cells(x, 2) = adr & "\" & f.Name
t = Split(f.Name, "#"): n = Split(t(1), ".")
Cells(x, 3) = n(0)
x = x + 1
End If
Next f
Columns("A:C").AutoFit
End Sub

La ligne qui pose problème est en rouge
Merci de votre aide
 
Dernière édition:

Paritec

XLDnaute Barbatruc
Re : Lister les fichiers d'un répertoire en isolant 1 ou 2 extensions, trier

Bonjour Kariboox le forum
pas de panique alors si je comprend bien tu n'as pas toujours de # mais pourtant tu avais bien dit dans ta demande que tu l'avais toujours!!!!!!!!!!!!!!!!!!
Tu as menti pour nous tester, (bandit) pas grave je vais modifier
je reviens dans 2 heures et je ferai cela ( là je dois partir chez un client)
a+
Papou:)
 

kariboox

XLDnaute Nouveau
Re : Lister les fichiers d'un répertoire en isolant 1 ou 2 extensions, trier

excusez moi Papou, seulement dans certains dossiers en provenance d'EDF, le # n'est pas toujours présent, du coup pour l'instant j'isole manuellement les tow avec # dans un nouveau dossier sous windows pour pouvoir lancer le fichier sans le bug.
 

Paritec

XLDnaute Barbatruc
Re : Lister les fichiers d'un répertoire en isolant 1 ou 2 extensions, trier

Re Kariboox le forum
j'ai besoin d'un dernier renseignement pour t'extraire tes numéros quand tu n'as pas de #
est-ce que systématiquement tu as des fichier terminant par au moins une lettre puis le numéro puis .pol ou .tow ??
dans l'attente de ta réponse
a+
Papou:)
 

kariboox

XLDnaute Nouveau
Re : Lister les fichiers d'un répertoire en isolant 1 ou 2 extensions, trier

la norme d'injection pour EDF est machinchose#numéro.tow, tous les autres tow sont ignorés et ne sont pas pris en compte pour l'injection, d'où l'importance du numéro à isoler entre # et.tow
 

Statistiques des forums

Discussions
312 168
Messages
2 085 907
Membres
103 029
dernier inscrit
ndembi sylver