Comment remplir un userform à partir données feuille ?

Bjr,

J'ai développé avec de l'aide cette app suivante mais je n'ai pas compris (techniquement) comment était remplis les userform (liste centre et liste théâtre) ?

J'ai bien listé les différents codes associés mais je n'ai tjrs pas trouvé comment donc étaient remplies les 2 listes ??

(et même été voir ds les propriétés de chaque userform)

Pourriez-vous m'indiquer afin que je comprenne mieux .

PS: dés que je clique sur le champ correspondant (le user forma apparaît)

Merci.

Rem: C'est tout ce que j'ai trouvé pour le code associé au userform (il match entre la liste et donnée feuille pour remplir les champs correspondants mais ne remplit pas la liste ou il y a un truc

capture d ecran 409

que je n'ai pas compris...??)

Private Sub Liste_Click()
    On Error GoTo FinClic
    Lieu = UserForm1.Liste.Value
    With Sheets("CENTRE")
        L = Application.Match(Lieu, .[A:A], 0)
        Application.EnableEvents = False
        [b4] = .Cells(L, "A")

    End With
    Unload UserForm1
FinClic:
    Application.EnableEvents = True
End Sub

Bonjour

Sans voir le fichier ce n'est pas facile.
Déjà vérifiez ceci --> Click droite sur le nom de l'onglet puis choisir "Visualiser le code" --> là vous avez peut être un code qui ouvre l'USF

Ensuite allez dans l'éditeur VBA et cliquez sur l'userform1 et sur la liste. Allez vérifier si vous n'avez pas la propriété Rowssource (c'est pas une bonne idée d'utiliser cette propriété) qui reprend un nom venant du gestionnaire de noms que vous trouvez dans le menu Formules

J'ai bien listé les différents codes associés mais je n'ai tjrs pas trouvé comment donc étaient remplies les 2 listes ??

Là je ne vois qu'une liste

Crdlt

Bonjour,

Le classeur est disponible ici

Faites un clic droit sur la feuille "saisie" : C'est la macro SélectionChange qui se charge d'affecter les données au ListBox.

 
   ' ListBox des CENTRES triés par noms
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [b4]) Is Nothing Then
        UserForm1.Liste.List = Sheets("CENTRE").Range("A1:A" & Sheets("CENTRE").[A10000].End(xlUp).Row).Value

'...puis plus loin :
  ' ListBox des THEATRES triés par noms
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [b9]) Is Nothing Then
        UserForm2.Liste.List = Sheets("BASE").Range("A1:A" & Sheets("BASE").[A10000].End(xlUp).Row).Value

A+

Re

@galopin : Merci de l'info ! Cela rejoint mon post avec plus de précision...

@Raphael : Merci de bien vouloir cloturer votre première demande (fil mentionné par Galopin dans sa réponse) si vous en avez terminé

Crdlt

Bsoir,

Merci pr vos infos !!

Effectivement en faisant clic-D sur l'onglet , j'obtiens bien le code correspondant (Worksheet/selectionChange) au remplissage du userform mais pourquoi par l'éditeur vba

ou figure l'arborescence avec les objets, les feuilles et les modules, je ne le trouve pas ...pas évident de s'y retrouver ???!! :-0

Bonjour

mais pourquoi par l'éditeur vba ou figure l'arborescence avec les objets, les feuilles et les modules, je ne le trouve pas ...pas évident de s'y retrouver

Mais si. Vous devez simplement comprendre la structure VBA

- Allez dans l'éditeur VBA
- appuyer sur CTRL + R pour afficher la fenêtre des Projet - VBAproject
- cliquez sur le + de l'object --> VBAProject invitations.xlsm
- double clik sur Feuil2(Saisie)

NB: Vous pouvez aussi y accéder via le menu excel --> Onglet Developpeur --> click sur l'icone "Visualiser le code"

Rem : n'oubliez pas la cloture de vos deux fils ouverts

Crdlt

Rechercher des sujets similaires à "comment remplir userform partir donnees feuille"