Bonjour à tous, je suis autodidacte en VBA et je vous sollicite pour m’aider à résoudre un problème.
J’ai un code qui liste les fichiers contenus dans un répertoire. Mais j’aimerai y apporter une amélioration, je m’explique.
Voilà mon code actuel :
Il me renvoi une liste de fichiers «Commandes»
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 Sub ListingFichiers() Dim Rep As String, Fichier As String Dim i As Integer Rep = ThisWorkbook.Path & "\05-Commandes" & "\" 'Repertoir du fichier Fichier = Dir(Rep) 'Nom du fichier dans le repertoir Sheets("Synthése commandes").Range("A5:ZZ65000").ClearContents 'Effacer tout i = 3 Do While Fichier <> "" If Fichier Like "*.xlsx*" Then i = i + 1 Sheets("Synthése commandes").Range("A" & 1 + i) = Fichier End If Fichier = Dir Loop End Sub
C2406552-0-WS UNIBER (EV).xlsx
C2407563-0-WS SMCB (Bidul).xlsx
C2407563-A-WS SMCB (Bidul).xlsx
C2407564-0-WS RUBIV (Commerce).xlsx
C2407567-0-WS RUBIV (Raccord).xlsx
C2407575-0-WS IGAS (Truc).xlsx
C2407575-A-WS IGAS (Truc).xlsx
C2407582-0-WS EMP3 (machin).xlsx
Je souhait l’améliorer en gérant les indices.
-0- ou -A- ou -B- ….
Sur l’exemple ci-dessus, on voit des numéros de commandes en doublons.
Je souhaite que, lorsqu’il y a doublon, le code ne renvoi seulement les n° de commandes don l’indice est le plus élevé.
C’est-à-dire :
C2406552-0-WS UNIBER (EV).xlsx
C2407563-A-WS SMCB (Bidul).xlsx
C2407564-0-WS RUBIV (Commerce).xlsx
C2407567-0-WS RUBIV (Raccord).xlsx
C2407575-A-WS IGAS (Truc).xlsx
C2407582-0-WS EMP3 (machin).xlsx
Information importante, le n° de commande sont toujours structurés comme ceci :
C => Pour commande
24 l’année
07 le mois
123 N° chrono compris entre 001 et 9999 (3 ou 4 chiffres)
-0- Par défaut indice 0 mais si modifications, l’indice sera -A- puis -B- etc… (toujours encadré de tirets)
WS Initiales de l’auteur 2 ou 3 lettres
FOURNISSEUR x caractères
Merci d’avance pour vos propositions de solutions.
Partager