Info listbox dans textbox et modif de celui-ci

  • Initiateur de la discussion Initiateur de la discussion poufab
  • 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 !

poufab

XLDnaute Nouveau
Bonjour,
J'ai cherché un peut partout et je ne trouve pas ce que je cherche, ou j'ai trouvé mais j'arrive pas à le faire marché pour moi.

Mon soucis est que je voudrai faire apparaitre dans 3 textbox les infos d'une ligne de listbox quand je click sur celle-ci et pouvoir modifier l'une des 3 textbox et validé la modif à l'aide du bouton adéquat dans la base de donnée.
les 3 textbox concerné sont NOM, PRENOM, DERNIER RECYCLAGE, l'info à modifier serai celle de DERNIER RECYCLAGE.
Et je voudrai également lorsque dans la liste deroulante je selectionne un nom, dans la listbox s'affiche tout les éléments se repportant à ce nom.

La macro doit ce faire sur l'userform3 du fichier joint.

Je remercie d'avance toute personne qui ce pencheras sur mon petit problème
 

Pièces jointes

Re : Info listbox dans textbox et modif de celui-ci

Merci Robert,
Le fichier est très bien, je pourrai facilement l'adapter à ce que j'ai besoin en remaniant juste un peut les userform du fichier joint, j'ai testé sa marche. Mais mon but est de comprendre comment cela tout fonctionne, et j'ai voulue l'adapté à mon fichier en modifiant "les sources", mais sa ne marche pas ,et je comprend pas pourquoi, et tu vois j'aimerai bien comprendre pourquoi?

Le code est:

Private Sub UserForm_Initialize() 'à l'initialisation de l'UserForm
Dim x As Integer 'déclare la variable x (incréemt)

'***************************
'alimentation de la ListBox1
'***************************
'boucles sur toutes les cellules éditées de la colonne C de l'onglet "Feuil2"
For x = 2 To Sheets("Feuil2").Range("C65536").End(xlUp).Row
With Me.ListBox1 'prend en compte la ListBox1
.AddItem Sheets("Feuil2").Cells(x, 2) 'ajoute la valeur de la colonne A
.Column(1, .ListCount - 1) = Sheets("Feuil2").Cells(x, 3) 'ajoute la valeur de la colonne B
.Column(2, .ListCount - 1) = Sheets("Feuil2").Cells(x, 4) 'ajoute la valeur de la colonne C
.Column(3, .ListCount - 1) = Sheets("Feuil2").Cells(x, 5) 'ajoute la valeur de la colonne D
.Column(4, .ListCount - 1) = Sheets("Feuil2").Cells(x, 6) 'ajoute la valeur de la colonne E
.Column(5, .ListCount - 1) = Sheets("Feuil2").Cells(x, 7) 'ajoute la valeur de la colonne F
.Column(6, .ListCount - 1) = Sheets("Feuil2").Cells(x, 8) 'ajoute la valeur de la colonne G
End With 'fin de la prise en compte de la ListBox1
Next x 'prochaine cellule de la boucle
'alimentation de la ComboBox1
Me.ComboBox1.List = Sheets("MOTIF").Range("A1:A" & Sheets("MOTIF").Range("A65536").End(xlUp).Row).Value
End Sub

Private Sub ListBox1_Click() 'au clic dans la ListBox1

If Me.Caption = "SUPPRESSION" Then Exit Sub 'si l'UserForm1 porte le titre "SUPPRESSION", sort de la procédure

'********************************
'récupère les données de la ligne
'********************************
With Me.ListBox1 'prend en compte la ListBox1
Me.TextBox1.Value = .Column(1, .ListIndex) 'récupère le nom
Me.TextBox2.Value = .Column(2, .ListIndex) 'récupère le prénom
Me.TextBox3.Value = .Column(3, .ListIndex) 'récupère la chambre
Me.ComboBox1.Value = .Column(4, .ListIndex) 'récupère lieu de rdv
Me.CheckBox1.Value = IIf(.Column(5, .ListIndex) = "X", True, False) 'récupère la régularisation
End With 'fin de la prise en compte de la ListBox1
Me.TextBox1.SetFocus 'place le curseur dans la TextBox1
'sélectionne le texte de la TextBox1
Me.TextBox1.SelStart = 0 'début de la sélection
Me.TextBox1.SelLength = Len(Me.TextBox1.Value) 'longueur de la sélection
End Sub
-------------------------------------------------------------------------
J'ai modifié "feuil2", viré les "Me.", decaler mes colonne de la base comme dans le fichier exemple mais sa ne marche pas.

Si quelqu'un peut m'indiquer l'erreur??? Que j'essaye de piger le truc pour essayer de me debrouillé seul par la suite.

Merci d'avance.
 
Re : Info listbox dans textbox et modif de celui-ci

Bonsoir Poufab, bonsoir le forum,
C'est ton fichier en pièce jointe qu'il nous faudrait pour pouvoir te dire où se trouve le problème...


Bien il y est en piéce jointe non?

Quand tu auras 2 min si tu peut jeter un coup!!

merci encore
 

Pièces jointes

Re : Info listbox dans textbox et modif de celui-ci

Salut le forum,
Donc j'ai dejà réussie à résoudre un des problèmes tout seul comme un grand! Youpi!!!

L'ancienne macro qui était avec le fichier exemple envoyé par le sympathique Robert:
'***************************
'alimentation de la ListBox1
'***************************
'boucles sur toutes les cellules éditées de la colonne C de l'onglet "Feuil2"
For x = 2 To Sheets("Feuil2").Range("C65536").End(xlUp).Row
With Me.ListBox1 'prend en compte la ListBox1
.AddItem Sheets("Feuil2").Cells(x, 2) 'ajoute la valeur de la colonne A
.Column(1, .ListCount - 1) = Sheets("Feuil2").Cells(x, 3) 'ajoute la valeur de la colonne B
.Column(2, .ListCount - 1) = Sheets("Feuil2").Cells(x, 4) 'ajoute la valeur de la colonne C
.Column(3, .ListCount - 1) = Sheets("Feuil2").Cells(x, 5) 'ajoute la valeur de la colonne D
.Column(4, .ListCount - 1) = Sheets("Feuil2").Cells(x, 6) 'ajoute la valeur de la colonne E
.Column(5, .ListCount - 1) = Sheets("Feuil2").Cells(x, 7) 'ajoute la valeur de la colonne F
.Column(6, .ListCount - 1) = Sheets("Feuil2").Cells(x, 8) 'ajoute la valeur de la colonne G
End With 'fin de la prise en compte de la ListBox1
Next x 'prochaine cellule de la boucle
'alimentation de la ComboBox1
Me.ComboBox1.List = Sheets("MOTIF").Range("A1:A" & Sheets("MOTIF").Range("A65536").End(xlUp).Row).Value
End Sub

Que j'ai modifié comme tel:
Private Sub UserForm_Initialize()
'si la dernière ligne est supérieure à 256 déclarer i et x en Integer
Dim i As Byte, x As Byte
i = Sheets("BASE DE DONNEE").Range("C1000").End(xlUp).Row
For x = 1 To i
With ListBox1
.AddItem Sheets("BASE DE DONNEE").Cells(x, 2)
.Column(1, .ListCount - 1) = Sheets("base de donnee").Cells(x, 3)
.Column(2, .ListCount - 1) = Sheets("base de donnee").Cells(x, 4)
.Column(3, .ListCount - 1) = Sheets("base de donnee").Cells(x, 5)
.Column(4, .ListCount - 1) = Sheets("base de donnee").Cells(x, 6)
.Column(5, .ListCount - 1) = Sheets("base de donnee").Cells(x, 7)
End With
Next x
End Sub
Mais petit probléme j'ai l'intitulé des colonnes qui se met dans la listbox comment évité cela??
Par contre j'ai toujours pas résolue le problème du click dans la listbox avec cette macro
Private Sub ListBox1_Click() 'au clic dans la ListBox1

If Me.Caption = "SUPPRESSION" Then Exit Sub 'si l'UserForm1 porte le titre "SUPPRESSION", sort de la procédure

'********************************
'récupère les données de la ligne
'********************************
With Me.ListBox1 'prend en compte la ListBox1
Me.TextBox1.Value = .Column(1, .ListIndex) 'récupère le nom
Me.TextBox2.Value = .Column(2, .ListIndex) 'récupère le prénom
Me.TextBox3.Value = .Column(3, .ListIndex) 'récupère la chambre
Me.ComboBox1.Value = .Column(4, .ListIndex) 'récupère lieu de rdv
Me.CheckBox1.Value = IIf(.Column(5, .ListIndex) = "X", True, False) 'récupère la régularisation
End With 'fin de la prise en compte de la ListBox1
Me.TextBox1.SetFocus 'place le curseur dans la TextBox1
'sélectionne le texte de la TextBox1
Me.TextBox1.SelStart = 0 'début de la sélection
Me.TextBox1.SelLength = Len(Me.TextBox1.Value) 'longueur de la sélection
End Sub

J'ai l'impression que sa click pas du tout dans la listbox, peut être un truc à paramétré!!
Quelqu'un aurai une idée, pour résoudre cet épineux probléme???
 
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

Retour