Je sais comment faire une liste de dossier dans Worksheet.
Sur le premier onglet, dans la colonne A, se trouve à partir de A3, des numéros de dossiers sont sous la forme 14-XXX.Y (14-001.A ; 14-001.B ... 14-003) cela va de 6 à 8 caractères.
Code :
Code:
Set r = Workbooks("Essai.1").Sheets("Feuil1").Cells(3, 1)
Do While r <> ""
UserForm1.WorkSheet1.AddItem r
Set r = r.Offset(1, 0)
Loop
La liste se fait très bien. Mais j'aimerais améliorer la chose. Dans une UserForm Antérieur, j'indique les 6 premiers caractères du dossier (14-XXX) et j'aimerai que lorsque j'arrive à la liste, je n'ai que les dossiers qui commance par les 6 caractères indiqué juste avant.
Merci pour ta réponse, mais il y a des soucis.
"Do While" & "If" ne fonctionnent pas en même temps.
Lorsque la macro est de la forme :
Code:
Set r = Workbooks("Essai.1").Sheets("Feuil1").Cells(3, 1)
Do While r.Value Like MaVariable & "*"
UserForm1.WorkSheet1.AddItem r
Set r = r.Offset(1, 0)
Loop
Il y a une message d'erreur : "Erreur définie par l'application ou par l'objet"
Lorsque la macro est de la forme :
Code:
Set r = Workbooks("Essai.1").Sheets("Feuil1").Cells(3, 1)
If r.Value Like MaVariable & "*" Then
UserForm1.WorkSheet1.AddItem r
Set r = r.Offset(1, 0)
End If
La liste ne ce fait qu'avec le premier N° dossier.
Il faudrait juste m'aider sur la manière de combiner le "Do While" et "If".
J'aurai dû dire entre la ligne Do ... et la ligne ...
Dans votre deuxième formulation, vous avez supprimé la boucle Do While !!! Mais j'avais donné une fausse indication : le End If doit être avant le Set r.... sinon r n'évolue pas .
Code:
Set r = Workbooks("Essai.1").Sheets("Feuil1").Cells(3, 1)
Do While r <> ""
If r.Value Like MaVariable & "*" Then
UserForm1.WorkSheet1.AddItem r
End If
Set r = r.Offset(1, 0)
Loop
Enfin, tout cela en théorie. Sans pouvoir vérifier sur un classeur d'essai joint...
avec la dernière version, c'est l'équivalent de la première version que j'ai indiqué au tout début.
je suis désolé, mais je ne peux envoyer le fichier, car celui sur lequel je travail à une macro trop longue. celui me prendrai trop de temps à vérif et enlever les données sensible.