Gérer plusieurs ListeBox

  • Initiateur de la discussion Initiateur de la discussion Amilo
  • Date de début Date de début

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 !

Amilo

XLDnaute Accro
Bonjour,

Je remets sur le forum, mon précédent fichier avec le code à mapomme qui m'a bien aidé dans le précédent fil,

Cette fois-ci, je souhaite intégrer une 2ème ListBox (voir UserForm1 dans l'Editeur VB) en vu de renseigner les cellules B1 et B2 de la feuille1,

Le résultat actuel n'est pas celui escompté...car ce sont les cellules B2 et C2 qui sont remplies,

Je ne trouve pas l'intruction à modifier.....!!

Par ailleurs, quelle est la signification de la valeur -1 ci-dessous, je n'ai pas trop compris le sens ??

Private Sub UserForm_Initialize()
ListeNoms.ListIndex = -1
End Sub


Merci d'avance

Cordialement
 

Pièces jointes

Dernière édition:
Re : Gérer plusieurs ListeBox

Bonsoir Amilo

Cette fois-ci, je souhaite intégrer une 2ème ListBox (voir UserForm1 dans l'Editeur VB) en vu de renseigner les cellules B1 et B2 de la feuille1
Quel intérêt de vouloir une 2ème Listbox !?

Le code est celui donné dans Userform1 😕
Code:
Sub Inscription(Ligne As Long)
  With Sheets("Feuil1")
    .Range("B1") = Range("LesNoms")(Ligne + 1, 1)
    .Range("B2") = Range("LesNoms")(Ligne + 1, 2)
  End With
  Unload Me
End Sub

Le -1 pour ListeNom.ListIndex = ne rien sélectionner en valeur

A+
 
Re : Gérer plusieurs ListeBox

Bonsoir Gurgeh, BrunoM45,

Merci à vous pour l'explication à ma question,

Bruno,

je me doutais un peu que le 2ème UserForm pouvait être évité mais je ne sais pas comment intégrer le code dans la listBox principale à savoir dans "Saisie" pour que j'ai la plage B7:C40, les 2 cellules B1 et B2 en fonction...!!!

P.S : le précédent message d'erreur "Mémoire Insuffisante" évoqué dans mon précédent fil refait surface comme par enchantement...et c'est pénible !!

Ca pourrait venir de mon système ??

Cordialement
 
Dernière édition:
Re : Gérer plusieurs ListeBox

Bonjour carcharodon-carcharias, le forum

J'ai bien pris note pour l'aide F1, c'est vrai que c'est une aide précieuse,

Sinon, je ne trouve pas de solution pour la listBox concernant les cellules B1, B2...!!!

Je souhaite garder également la listBox actuelle pour la plage B7:B40,

Merci d'avance pour votre aide

Cordialement
 
Re : Gérer plusieurs ListeBox

Bonjour Robert,

J'avoue que je ne m'attendais pas à un tel travail pour cette demande complémentaire,

Je m'attendais plutôt à 2 ou 3 lignes d'instructions supplémentaires.....!!

mais en tout cas mille mercis pour votre aide trés précieuse, tout fonctionne trés bien...

Vous avez également pris tout le soin d'expliquer chaque ligne du code et je vous en suis trés reconnaissant,


En vous souhaitant une bonne fin de journée

Cordialement
 
Re : Gérer plusieurs ListeBox

Bonjour à tous

En nommant la base de données _BD, vous pouvez aussi mettre ce code dans le USerform (Voir le fichier).

Code:
Private Sub UserForm_Initialize() 'à l'initialisation de l'UserForm
ListBox1.RowSource = "_BD"
End Sub

Private Sub ListBox1_Click()
ActiveCell = ListBox1
If ActiveCell.Row < 3 Then ActiveCell.Offset(1, 0).Value = ListBox1.Column(1) Else ActiveCell.Offset(0, 1).Value = ListBox1.Column(1)
End Sub
 

Pièces jointes

Dernière édition:
Re : Gérer plusieurs ListeBox

Bonjour MJ13,

Trés intéréssante cette solution et merci beaucoup également pour votre aide,

Je trouve que cette méthode ouvre trés facilement d'autres perspectives avec les noms définis,

P.S : je viens juste de modifier la plage B1:B2 en B1 pour éviter d'activer la cellule B2

If Application.Intersect(Target, Application.Union(Range("B1:B2")

Bonne soirée MJ13,



Cordialement
 
Dernière édition:
Re : Gérer plusieurs ListeBox

Re bonsoir,

Finalement, je rencontre le même problème qu'avec le comboBox utilisé dans un de mes précédents fil,

J'ai repris ci-dessous en citation le même problème que je rencontre pour ma listBox....!!!

Par ailleurs, la recherche s'arrête que sur la 1ère lettre de la listBox, peut-on aller plus loin dans la sélection (avec 2 voire plus de lettres)...????

Le nouveau problème avec ma liste déroulante (clic sur la cellule B1 de la feuille1), c'est que lorsque je saisie une 1ère lettre par exemple le S dans ma liste déroulante,

il ne m'est pas possible choisir ce nom, je suis obligé de sélectionner un autre nom...!!

C'est pareil à chaque fois qu'un nom fait partie du 1er rang de la lettre saisie....!!!!


Cordialement
 
Re : Gérer plusieurs ListeBox

Bonsoir le Forum,

J'ai trouvé la solution à un de mes 2 problèmes évoqués dans mon message précédent,

celui de la recherche dynamique du nom dans une listBox par la saisie des lettres,

Pour cela, j'ai donc simplement remplacé la propriété "MatchEntry =0 -fmMatchEntryFirstLetter"
par "MatchEntry = 1 -fmMatchEntryComplete"

Mais je bloque toujours sur le 2ème problème à savoir dès que la sélection s'ajuste en tapant la 1ere lettre dans ma listBox, je n'arrive pas récupérer le 1er nom de la liste dynamique...!!!

Avez-vous une idée du problème svp ??


Merci d'avance

Slts
 
Dernière édition:
Re : Gérer plusieurs ListeBox

Bonsoir le forum,

Désolé, juste pour dire que le problème pour la récupération du 1er nom selon la 1er lettre saisie est également résolu,

La solution était dans le code à Robert, que j'ai finalement repris est adapté à mon fichier perso,

Merci encore à vous tous,

Cordialement
 
Re : Gérer plusieurs ListeBox

Bonjour à tous

Désolé, juste pour dire que le problème pour la récupération du 1er nom selon la 1er lettre saisie est également résolu, la solution était dans le code à Robert, que j'ai finalement repris est adapté à mon fichier perso,

Amilo:
cela aurait été sympa de montrer à défaut de fichier, le code qui fonctionne 😕.
 
Re : Gérer plusieurs ListeBox

Bonsoir le forum, MJ13,

Désolé, je viens de voir à l'instant votre message,

Le fichier et le code se trouvent dans le message à Robert du 29/07/2012 dans ce même sujet,

Le code qui fonctionne dans mon cas se trouve directement dans l'Userform1 du fichier nommé "Amilo_V01" que Robert a mis donc en fichier joint,

Pour ma part, j'ai juste modifié la propriété à MatchEntry = 1- fmMatchEntryComplete de l'UserForm1 pour une sélection par saisie de plusieurs lettres et non seulement par la 1ère lettre.

Et également mis en commentaire l'instruction (ou la ligne) ci-dessous en gras dont j'avais pas d'utilité :

Private Sub ListBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'à l'appui d'une touche du clavier dans la ListBox1
If KeyAscii = 13 Then Call mark 'si la touche est [Entrée], lance la procédure mark
'si la cellule active est dans la plage B1:B2, vide et ferme l'UserForm
'If Not Application.Intersect(ActiveCell, Sheets("Feuil1").Range("B1:B2")) Is Nothing Then Unload Me
If KeyAscii = 27 Then Unload Me 'si la touche est [Échap.], vide et ferme l'UserForm
End Sub

Sinon, je n'ai repris tout le reste du code à Robert,

J'espère avoir répondu à votre attente,

Cordialement
 
Dernière édition:
- 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

E
Réponses
2
Affichages
1 K
elsabio77
E
Retour