Bonsoir,

Tournant en rond depuis deux jours, je reviens vers vous pour une Nième énigme pour moi (je vous rassure, je commence à trouver moi-même des réponses à certaines énigmes, même si j'y mets le temps ) ...
Je vais essayer d'être le plus clair possible dans mes explications.

Via un UserForm, je souhaite permettre la suppression de fichiers archivés.
Ces fichiers portent un nom contenant systématiquement la date d'archivage au format anglais (yymmdd).
J'ai créé le UserForm avec entre autres :
- une ComboBox (cmbDate) contenant les opérateurs de comparaison
- une TextBox (txtDate) pour la saisie d'une date au format français (jj/mm/aa)
- une ListBox (lbListeArchives) pour afficher les noms des fichiers xls trouvés dans le répertoire (ThisWorkbook.Path)
A ce jour, j'ai réussi à alimenter la ListBox si je ne mets pas de date ou si j'en mets une (l'opérateur de comparaison n'est pas encore opérationnel). Je souhaite maintenant utiliser le comparateur (<=, >=, = ou <>) et ne récupérer dans la ListBox que les fichiers répondant au critère de recherche (ex : fichiers contenant dans leur nom une date <= à la date saisie dans le UserForm). Et c'est là que le bas blesse, car malgré mes recherche et mes essais, je n'y arrive pas
Voici où j'en suis (code du UserForm).

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
33
34
35
36
37
38
39
40
41
42
43
Option Explicit
 
Private Sub UserForm_Initialize()
' Alimentation de la ComboBox cmdDate avec les opérateurs de comparaison
    cmbDate.AddItem "<="
    cmbDate.AddItem ">="
    cmbDate.AddItem "="
    cmbDate.AddItem "<>"
End Sub
 
Private Sub cmdRechercher_Click()
' Déclaration des variables
    Dim Chemin As String ' Variable indiquant le répertoire de stockage de l'application
    Dim NomFichier As String ' Variable de stockage du nom du fichier archivé
    ' Variables date
    Dim Jour As String, Mois As String, Annee As String ' Variables pour conversion de la date saisie
    Dim DateSaisie As String ' Valeur de txtDate
    Dim ValeurDate As String ' Date saisie mise au format "jjmmaa" ("ddmmyy")
'
' Définition des valeurs de la variable ValeurDate
    Chemin = ThisWorkbook.Path
    DateSaisie = txtDate.Value
'
' Conversion au format anglais ("yymmdd") de la date saisie (DateSaisie)
    ' Récupération des 2 premiers caractères en partant de la gauche (jour)
    Jour = Left(DateSaisie, 2)
    ' Récupération des 2 caractères suivant le 4ème caractère en partant de la gauche (mois)
    Mois = Mid(DateSaisie, 4, 2)
    ' Récupération des 2 premiers caractères en partant de la droite (année)
    Annee = Right(DateSaisie, 2)
    ' Définition de ValeurDate (mise au format anglais de la date saisie)
    ValeurDate = Annee & Mois & Jour
'
' Recherche des fichiers
    NomFichier = Dir(Chemin & "\*" & ValeurDate & "*.xls"
' La boucle tourne tant qu'elle trouve un fichier correspondant aux critères de recherche
    Do While Len(NomFichier) > 0
        ' Ajoute le nom du fichier dans la ListBox
        lbListeArchives.AddItem NomFichier
        ' Recherche du fichier suivant
        NomFichier = Dir()
    Loop
End Sub
Merci d'avance pour votre aide. J'essayerai ensuite d'avancer seul pour la suite ... sauf si je bute à nouveau
Bruno