Faire une liste d'un groupe

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Chtitefanny

XLDnaute Junior
Bonjour à tous,

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.

Si vous avez une idée.

Fanny
 
Re : Faire une liste d'un groupe

Bonjour,

pas sûr d'avoir tout compris; un classeur sans données sensibles aurait permis de lever certains doutes.

Si votre code fonctionne pour alimenter une liste (???), modifier en rajoutant entre Do While ... et UserForm1....

If r.value Like MaVariable & "*" then

et rajouter End If juste avant Loop

MaVariable étant la variable que vous avez initialisée avec les 6 premiers caractères du dossier.

A+
 
Re : Faire une liste d'un groupe

Bonjour Paf,

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".

Merci d'avance pour votre aide.

Fanny
 
Re : Faire une liste d'un groupe

Re

Si votre code fonctionne pour alimenter une liste (???), modifier en rajoutant entre Do While ... et UserForm1....

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...

Bonne suite
 
Dernière édition:
Re : Faire une liste d'un groupe

Re Paf,

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.

Fanny
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour