Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Question difficile sur fonctionnement liste déroulante

10 réponses
Avatar
michir
Bonjour, je vais essayer d'=EAtre clair
Soit une liste de Noms dans une feuille "M.A.J_Donnees" extensible =E0 300 =
noms , mais ne comportant actuellement que 190 noms saisis
Je souhaite exploiter cette liste tenue =E0 jour dans d'autres feuilles. J'=
ai donc utilis=E9 une formule nomm=E9e pour d=E9finir le nom:
Soit donc le nom de ma liste "Liste_Noms" et la formule=20
=3DDECALER(M.A.J_Donnees!$B$8;;;NBVAL(M.A.J_Donnees!$B:$B)-6;)
Ma question: je souhaiterais que la liste d=E9roulante affiche ma liste au =
milieu des noms, ou bien au d=E9but de la liste.
Actuellement elle affiche une fen=EAtre vierge et je suis syst=E9matiquemen=
t oblig=E9 d'utiliser l'ascenseur pour retrouve mes noms.
J'ai =E9t=E9 un peu long, mais je d=E9sirais =EAtre clair
Merci =E0 tous
Michel

10 réponses

Avatar
Péhemme
Bonjour michir, bonjour à tous,

Si ta combobox est dans un UserForm,
Private Sub UserForm_Initialize()
ComboBox1.ListIndex = 95 '(190/2) à adapter
End Sub
Bon dimanche
Michel

"michir" a écrit dans le message de
news:
Bonjour, je vais essayer d'être clair
Soit une liste de Noms dans une feuille "M.A.J_Donnees" extensible à 300
noms , mais ne comportant actuellement que 190 noms saisis
Je souhaite exploiter cette liste tenue à jour dans d'autres feuilles. J'ai
donc utilisé une formule nommée pour définir le nom:
Soit donc le nom de ma liste "Liste_Noms" et la formule
ÞCALER(M.A.J_Donnees!$B$8;;;NBVAL(M.A.J_Donnees!$B:$B)-6;)
Ma question: je souhaiterais que la liste déroulante affiche ma liste au
milieu des noms, ou bien au début de la liste.
Actuellement elle affiche une fenêtre vierge et je suis systématiquement
obligé d'utiliser l'ascenseur pour retrouve mes noms.
J'ai été un peu long, mais je désirais être clair
Merci à tous
Michel
Avatar
Péhemme
J'ai lu un peu vite.
Ma réponse précédente, tu l'auras compris, concerne :
la liste déroulante affiche ma liste au milieu des noms


En ce qui concerne :
ou bien au début de la liste


ComboBox1.ListIndex = 0
Bon dimanche
Michel

"michir" a écrit dans le message de
news:
Bonjour, je vais essayer d'être clair
Soit une liste de Noms dans une feuille "M.A.J_Donnees" extensible à 300
noms , mais ne comportant actuellement que 190 noms saisis
Je souhaite exploiter cette liste tenue à jour dans d'autres feuilles. J'ai
donc utilisé une formule nommée pour définir le nom:
Soit donc le nom de ma liste "Liste_Noms" et la formule
ÞCALER(M.A.J_Donnees!$B$8;;;NBVAL(M.A.J_Donnees!$B:$B)-6;)
Ma question: je souhaiterais que la liste déroulante affiche ma liste au
milieu des noms, ou bien au début de la liste.
Actuellement elle affiche une fenêtre vierge et je suis systématiquement
obligé d'utiliser l'ascenseur pour retrouve mes noms.
J'ai été un peu long, mais je désirais être clair
Merci à tous
Michel
Avatar
michir
Merci Péhemme,
Je n'utilise pas une combobox mais tout bêtement un dérouleur dans une cellule avec une validation de données
Michel
Avatar
DanielCo
Bonjour,
Tu ne peux pas gérer grand chose au niveau d'une liste déroulante.
Utilise plutôt une listbox ou une combobox.
Cordialement.
Daniel


Merci Péhemme,
Je n'utilise pas une combobox mais tout bêtement un dérouleur dans une
cellule avec une validation de données Michel
Avatar
LSteph
Bonjour,

Un exemple avec ta liste en Feuil1 (codename) et la saisie dans une
autre

tu pourrais faire apparaître un userform par doubleclioc dans la
cellule
laisser tes regles de validation (déroulant dans la cellule) et
refuser ainsi les données hors liste en cas de saisie directe ou via
validation.
Donner la possibilité à celui qui passe via la listbox du userform de
taper d'abord la premiere lettre

Dans VBE inserer uuserform dans le projet du classeur y mettre une
listbox et deux command button (caption mettre respectivement Valider
Annuler )

'''dans le code de la feuille de saisie

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel
As Boolean)
Cancel = True
UserForm1.Show
End Sub

''dans le code du userform
Private Sub CommandButton1_Click()
ActiveCell = ListBox1
Unload Me
End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub

Private Sub UserForm_Initialize()
ListBox1.List = Range(Feuil1.[g8], Feuil1.[g65536].End(xlUp)).Value
End Sub

'LSteph


On Aug 28, 1:39 pm, michir wrote:
Merci Péhemme,
Je n'utilise pas une combobox mais tout bêtement un dérouleur dans un e cellule avec une validation de données
Michel
Avatar
michir
Merci pour vos réponses notamment LSteph que je n'ai pas encore eu le tem ps de tester.
Question subsidiaire relative à la compréhension de la fonction "DECALE R"
J'utilise une formule nommée dans une liste déroulante dynamique
'ÞCALER(M.A.J_Donnees!$B$8:$B$400;;;NBVAL(M.A.J_Donnees!$B$8:$B$400)-12 )
Pourquoi suis-je obligé de rentrer -12 en dernier argument pour que ma li ste déroulante affiche les Noms qui sont en colonne B ?
Si je n'affiche pas cet argument, la liste déroulant affiche vide et je s uis obligé de remonter systématiquement avec l'ascenseur
Merci
Michel
Avatar
Péhemme
Je ne comprends pas bien ... l'âge sans doute...
Sans rentrer dans le détail...
Tu décris une plage à partir de laquelle tu effectues un décalage (?)
La fonction Decaler sert (entre autre) à nommer un champ dont la hauteur est
inconnue.
Par exemple, si tu mets un titre (supposons "TITRE") en ligne 1 de ta
colonne B :
Insertion/Nom/Définir : TITRE
Fait référence à :
ÞCALER(NomDeTaFeuille!$B$2;;;NBVAL(NomDeTaFeuille!$B:$B)-1)
Le -1 représente le nombre d'éléments de ta colonne que tu ne souhaites pas
inclure dans ta liste.
Si l'étiquette de ta colonne est en J10, tu écris la formule :
ÞCALER(NomDeTaFeuille!$J$11;;;NBVAL(NomDeTaFeuille!$J:$J)-1)
Puis dans Données/Validation/Options :
Autoriser : Liste
Source : =TITRE
Teste ces exemples et adapte-les à ton cas.
Michel




"michir" a écrit dans le message de
news:
Merci pour vos réponses notamment LSteph que je n'ai pas encore eu le temps
de tester.
Question subsidiaire relative à la compréhension de la fonction "DECALER"
J'utilise une formule nommée dans une liste déroulante dynamique
'ÞCALER(M.A.J_Donnees!$B$8:$B$400;;;NBVAL(M.A.J_Donnees!$B$8:$B$400)-12)
Pourquoi suis-je obligé de rentrer -12 en dernier argument pour que ma liste
déroulante affiche les Noms qui sont en colonne B ?
Si je n'affiche pas cet argument, la liste déroulant affiche vide et je suis
obligé de remonter systématiquement avec l'ascenseur
Merci
Michel
Avatar
michel ou sam
Bonjour,
à mon avis il y a des bricoles qui traînent plus bas dans ta colonne B et
qui sont donc comptabilisées.
Michel

"michir" a écrit dans le message de news:

Merci pour vos réponses notamment LSteph que je n'ai pas encore eu le temps
de tester.
Question subsidiaire relative à la compréhension de la fonction "DECALER"
J'utilise une formule nommée dans une liste déroulante dynamique
'ÞCALER(M.A.J_Donnees!$B$8:$B$400;;;NBVAL(M.A.J_Donnees!$B$8:$B$400)-12)
Pourquoi suis-je obligé de rentrer -12 en dernier argument pour que ma liste
déroulante affiche les Noms qui sont en colonne B ?
Si je n'affiche pas cet argument, la liste déroulant affiche vide et je suis
obligé de remonter systématiquement avec l'ascenseur
Merci
Michel
Avatar
michir
Merci à vous deux Péhemme pour m'avoir permis de simplifier ma formule, et michel ou sam pour m'avoir donné l'explication à cause de laquelle je butais depuis un moment.
En effet j'avais des bricoles plus bas dans ma colonne B, et le le nombre q ue je dois déduire en dernier argument correspond bien au nombre de cellu les qui comportent des bricoles...trop fort
Merci donc
Michel
Avatar
michel ou sam
c'est quand même utile une boule de cristal !

Michel

"michir" a écrit dans le message de news:

Merci à vous deux Péhemme pour m'avoir permis de simplifier ma formule, et
michel ou sam pour m'avoir donné l'explication à cause de laquelle je butais
depuis un moment.
En effet j'avais des bricoles plus bas dans ma colonne B, et le le nombre
que je dois déduire en dernier argument correspond bien au nombre de
cellules qui comportent des bricoles...trop fort
Merci donc
Michel