XL 2019 Userform.

RichardS

XLDnaute Junior
Bonjour à tous,
Et d'avance merci pour votre réponse que j'attends impatiemment.
Mon fichier Excel se compose d'une seule feuille "Feuil1" qui contient une liste dans la colonne A. Mon programme permet d'augmenter ou de diminuer le nombre de ligne de la liste.
J'ai créé une Userform "Usf1". Dans Usf1, j'ai une zone de liste déroulante dans laquelle je souhaite que s'affiche la liste de Feuil1.
Si j'utilise l'option "RowSource" des propriétés de la liste et que j'y mets "Feuil1!A:A", ma liste comportera toutes les lignes non remplie de la colonne de Feuil1. Pas facile à travailler.
Si par contre j'y inscrit "Feuil1!A1:A50" il n'affichera que les 50 première lignes. Ce qui peut être trop ou pas assez.
En fait je souhaite un affichage dynamique qui varie en fonction du nombre de lignes de ma liste.
Pouvez vous m'aider ?

RichardS
 

job75

XLDnaute Barbatruc
Bonjour RichardS, xUpsilon,

C'est quand même archi classique !

En supposant qu'il y a une ligne d'en-têtes en Feuil1 définissez le nom Liste par :
Code:
=DECALER(Feuil1!$A$1;1;;NBVAL(Feuil1!$A:$A)-1)
Et renseignez la propriété RowSource de la ComboBox par le texte Liste

Edit : coquille, manquait un point-virgule...

A+
 
Dernière édition:

RichardS

XLDnaute Junior
Je me demande si nous parlons de la même chose. Lorsque je suis dans la Userform, je clique dans la liste déroulante et sur propriétés. Le Rowsource est une des options de Propriétés.
Et bien ce rowsource là me dit valeur de propriété non valide.
POURQUOI ?
 

RichardS

XLDnaute Junior
Il s'agit d'un programme de gestion d'un club de tir.
La Userform1 contient la liste des adhérents. Cette liste est dynamique par un autre programme non présent.
Le but est de faire en sorte que la Userform1 affiche la totalité de la liste de la feuille Liste et non seulement une partie.
Les listes sont confidentielles, c'est pour cela que je ne vous ai pas immédiatement communiqué le fichier. J'ai supprimé les listes pour les remplacer par quelques prénoms.
 

Pièces jointes

  • Classeur enregistrement3 - test.xls
    307.5 KB · Affichages: 15

patricktoulon

XLDnaute Barbatruc
re
VB:
Dim tablo
tablo = Evaluate("A2:A" & Evaluate("COUNTA(Feuil1!$A:$A)"))
ComboBox1.List = tablo

ou bien encore
VB:
tablo = Feuil1.[A2].Resize(Evaluate("COUNTA(Feuil1!$A:$A)") - 1, 1)
ComboBox1.List = tablo
amusant ;)
je la garde dans ma collection evaluate;)
 
Dernière édition:

job75

XLDnaute Barbatruc
Bah les formules étant en notation L1C1 et sans ligne d'en-têtes définir le nom Liste par :
Code:
=DECALER(Liste!L1C1;;;NBVAL(Liste!C1))
Par ailleurs dans UserForm1 et UserForm3 il ne s'agit pas de ComboBox mais de ListBox.

Comme dans le fichier joint renseigner leur propriété RowSource par Liste

Salut JM27, patricktoulon.
 

Pièces jointes

  • Classeur enregistrement(1).xls
    313 KB · Affichages: 17

Statistiques des forums

Discussions
312 364
Messages
2 087 624
Membres
103 624
dernier inscrit
PhilduMorvan