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

2 listbox sur le Même UserForm - Comment récupérer les deux valeurs ?

4 réponses
Avatar
Sou PULL
Bonjour, j'utilise la macro suivante dans une feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 20 Then
petit_materiel.Show
If Var = "!!!" Then Exit Sub
rep = MsgBox("Vous avez choisi " & Var & ", veuillez
confirmer.", vbOKCancel)
If rep = 2 Then Exit Sub
Range("C" & Target.Row) = Var
ElseIf Target.Column = 22 Then
If Target.Value <> 5 Then Exit Sub
concurrent.Show
If Var = "!!!" Then Exit Sub
rep = MsgBox("Vous avez choisi " & Var & " et " & Var2 & ",
veuillez confirmer.", vbOKCancel)
If rep = 2 Then Exit Sub
Range("A" & Target.Row) = Var
Range("B" & Target.Row) = Var2
End If
Var = ""
End Sub

L'un des UserForm appelé "concurrent" dispose de 2 ListBox
Je souhaite que la valeur de la ListBox1 appelé "liste_bioch" aille se
ranger dans la colonne A de ma feuille et que la valeur de la ListBox2
appelé "liste_hemato" aille se ranger dans la colonne B
Sachant que cela marchait pour une valeur avec "Var" je me suis dit que
avec Var2, Excel se comprendrait ma démarche...que neni !!!
Seul la valeur de la listeBox 1 est correctement rangé en colonne A, our
l'autre, rien ne se passe, et je n'ai aucun message d'erreur. Précison
que je débute et que j'ai surement commis une boulette, mais laquelle ?
Ci-dessous le code de mon UserForm qui comprend également un bouton OK,
un un bouton Annuler :

Private Sub cbAnnul_Click()
Unload concurrent
Var = ""
End Sub

Private Sub cbok_Click()
Var = liste_bioch.Value
Var2 = liste_hemato.Value
Unload concurrent
End Sub

Merci par avance aux correcteurs...
Soupull

4 réponses

Avatar
JLuc
*Bonjour Sou PULL*,
Essaie de modifier comme ceci :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 20 Then
petit_materiel.Show
If petit_materiel.liste_bioch = "!!!" Then Exit Sub
rep = MsgBox("Vous avez choisi " & Var & _
", veuillez confirmer.", vbOKCancel)
If rep = 2 Then Exit Sub
Range("C" & Target.Row) = petit_materiel.liste_bioch
Unload petit_materiel
ElseIf Target.Column = 22 Then
If Target.Value <> 5 Then Exit Sub
concurrent.Show
If concurrent.liste_bioch = "!!!" Then Exit Sub
rep = MsgBox("Vous avez choisi " & concurrent.liste_bioch & _
" et " & concurrent.liste_hemato & _
", veuillez confirmer.", vbOKCancel)
If rep = 2 Then Exit Sub
Range("A" & Target.Row) = concurrent.liste_bioch
Range("B" & Target.Row) = concurrent.liste_hemato
Unload concurrent
End If
Var = ""
End Sub

Private Sub cbAnnul_Click()
concurrent.liste_bioch.Listindex = -1
Unload concurrent
End Sub

Private Sub cbok_Click()
concurrent.Hide
End Sub

Merci par avance aux correcteurs...
Test avant de dire merci, on sait jamais (pas testé) :oÞ



--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Avatar
Sou PULL
J'ai une erreur de compilation : "Membre de méthode ou de donnée
introuvable" Le débogeur surligne sur .liste_bioch en ligne 4
Heu....là ca y est je me déclare comme officiellement paumé ;o)

Merci quand même d'avoir essayé Jluc. Une autre idée peut être...?

Soupull


*Bonjour Sou PULL*,
Essaie de modifier comme ceci :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 20 Then
petit_materiel.Show
If petit_materiel.liste_bioch = "!!!" Then Exit Sub
rep = MsgBox("Vous avez choisi " & Var & _
", veuillez confirmer.", vbOKCancel)
If rep = 2 Then Exit Sub
Range("C" & Target.Row) = petit_materiel.liste_bioch
Unload petit_materiel
ElseIf Target.Column = 22 Then
If Target.Value <> 5 Then Exit Sub
concurrent.Show
If concurrent.liste_bioch = "!!!" Then Exit Sub
rep = MsgBox("Vous avez choisi " & concurrent.liste_bioch & _
" et " & concurrent.liste_hemato & _
", veuillez confirmer.", vbOKCancel)
If rep = 2 Then Exit Sub
Range("A" & Target.Row) = concurrent.liste_bioch
Range("B" & Target.Row) = concurrent.liste_hemato
Unload concurrent
End If
Var = ""
End Sub

Private Sub cbAnnul_Click()
concurrent.liste_bioch.Listindex = -1
Unload concurrent
End Sub

Private Sub cbok_Click()
concurrent.Hide
End Sub

Merci par avance aux correcteurs...
Test avant de dire merci, on sait jamais (pas testé) :oÞ






Avatar
JLuc
*Bonjour Sou PULL*,
C'est, je suppose, cense etre le nom de ta listbox dans le formulaire
petit_materiel. Maintenant, il est vrai que je ne connais pas les nom
de tes controles, tu n'en a pas dit beaucoup la dessus, donc j'ai
extrapolé :oÞ

J'ai une erreur de compilation : "Membre de méthode ou de donnée introuvable"
Le débogeur surligne sur .liste_bioch en ligne 4
Heu....là ca y est je me déclare comme officiellement paumé ;o)

Merci quand même d'avoir essayé Jluc. Une autre idée peut être...?

Soupull


*Bonjour Sou PULL*,
Essaie de modifier comme ceci :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 20 Then
petit_materiel.Show
If petit_materiel.liste_bioch = "!!!" Then Exit Sub
rep = MsgBox("Vous avez choisi " & Var & _
", veuillez confirmer.", vbOKCancel)
If rep = 2 Then Exit Sub
Range("C" & Target.Row) = petit_materiel.liste_bioch
Unload petit_materiel
ElseIf Target.Column = 22 Then
If Target.Value <> 5 Then Exit Sub
concurrent.Show
If concurrent.liste_bioch = "!!!" Then Exit Sub
rep = MsgBox("Vous avez choisi " & concurrent.liste_bioch & _
" et " & concurrent.liste_hemato & _
", veuillez confirmer.", vbOKCancel)
If rep = 2 Then Exit Sub
Range("A" & Target.Row) = concurrent.liste_bioch
Range("B" & Target.Row) = concurrent.liste_hemato
Unload concurrent
End If
Var = ""
End Sub

Private Sub cbAnnul_Click()
concurrent.liste_bioch.Listindex = -1
Unload concurrent
End Sub

Private Sub cbok_Click()
concurrent.Hide
End Sub

Merci par avance aux correcteurs...
Test avant de dire merci, on sait jamais (pas testé) :oÞ







--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O



Avatar
Soupull
Bonsoir JLuc, j'ai résolu mon problême en créant sur les conseils de
Daniel une variable publique supplémentaire appelé Var2 et ca y est cela
fonctionne. Pour info voici donc le code complet qui fonctionne :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 20 Then
petit_materiel.Show
If Var = "" Then Exit Sub
rep = MsgBox("Vous avez choisi " & Var & ", veuillez
confirmer.", vbOKCancel)
If rep = 2 Then Exit Sub
Range("C" & Target.Row) = Var
ElseIf Target.Column = 22 Then
If Target.Value <> 5 Then Exit Sub
concurrent.Show
If Var = "" Then Exit Sub
rep = MsgBox("Vous avez choisi " & Var & " et " & Var2 & ",
veuillez confirmer.", vbOKCancel)
If rep = 2 Then Exit Sub
Range("A" & Target.Row) = Var
Range("B" & Target.Row) = Var2

End If
End Sub

Et voici le code des UserForm :

Private Sub cbAnnul_Click()
Unload concurrent
Var = ""
Var2 = ""
End Sub

Private Sub cbok_Click()
Var = liste_bioch.Value
Var2 = liste_hemato.Value
Unload concurrent
End Sub

Voili Voilou....

Soupull


*Bonjour Sou PULL*,
C'est, je suppose, cense etre le nom de ta listbox dans le formulaire
petit_materiel. Maintenant, il est vrai que je ne connais pas les nom de
tes controles, tu n'en a pas dit beaucoup la dessus, donc j'ai extrapolé
:oÞ

J'ai une erreur de compilation : "Membre de méthode ou de donnée
introuvable" Le débogeur surligne sur .liste_bioch en ligne 4
Heu....là ca y est je me déclare comme officiellement paumé ;o)

Merci quand même d'avoir essayé Jluc. Une autre idée peut être...?

Soupull


*Bonjour Sou PULL*,
Essaie de modifier comme ceci :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 20 Then
petit_materiel.Show
If petit_materiel.liste_bioch = "!!!" Then Exit Sub
rep = MsgBox("Vous avez choisi " & Var & _
", veuillez confirmer.", vbOKCancel)
If rep = 2 Then Exit Sub
Range("C" & Target.Row) = petit_materiel.liste_bioch
Unload petit_materiel
ElseIf Target.Column = 22 Then
If Target.Value <> 5 Then Exit Sub
concurrent.Show
If concurrent.liste_bioch = "!!!" Then Exit Sub
rep = MsgBox("Vous avez choisi " & concurrent.liste_bioch & _
" et " & concurrent.liste_hemato & _
", veuillez confirmer.", vbOKCancel)
If rep = 2 Then Exit Sub
Range("A" & Target.Row) = concurrent.liste_bioch
Range("B" & Target.Row) = concurrent.liste_hemato
Unload concurrent
End If
Var = ""
End Sub

Private Sub cbAnnul_Click()
concurrent.liste_bioch.Listindex = -1
Unload concurrent
End Sub

Private Sub cbok_Click()
concurrent.Hide
End Sub

Merci par avance aux correcteurs...
Test avant de dire merci, on sait jamais (pas testé) :oÞ