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).
Merci d'avance pour votre aide. J'essayerai ensuite d'avancer seul pour la suite ... sauf si je bute à nouveau
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
Bruno
Partager