vlookup via combobox, un truc de fou - VB/VBA/VBS - Programmation
MarshPosté le 17-03-2006 à 20:28:04
Un truc de fou, jy comprends rien, deux problèmes de fou. Avant tout, ce que je souhaite. Faire un convertiseur dunité (pouce, mm) Jai donc placé deux boutons, option1 et 2 Puis suivant loption je remplis une combobox puis jeffectue un vlookup.
Pour optionbutton1 cela fonctionne très bien mais pour loption deux, jai un décalage dun rang et je comprends pas pourquoi
Ex Aa a1 BB b2 Cc C3 Lorsqu je tape a1 jai rien puis en b2 je trouve Aa ???
Mon deuxième problème viens lorsque je remplace aa a1 etc par les vrais valeurs ¼ 20 x 27 1 26 x 34 4 102 x 114 dans ce cas les resultats sont délirants, jai beau avoir remplis les valeurs avec = « ¼ » comme du texte cela continue de ma donner des resultats erronés
je trouve vraiment pas de solution. Si quelquun y comprend quelque chose voici en tous les cas mon programme
A+ merci bien
Private Sub OptionButton1_Click() Dim v As String With usf1 If OptionButton1 = True Then li = 2 .ComboBox1.Clear For i = 2 To 14 v = Sheets("feuil4" ).Range("b1" ).Offset(i, 0).Value .ComboBox1.AddItem v Next ComboBox1.ListIndex = -1 End If
End With End Sub Private Sub OptionButton2_Click() Dim v As String li = 1 If OptionButton2 = True Then With usf1 usf1.ComboBox1.Clear For i = 2 To 14 v = Sheets("feuil4" ).Range("c1" ).Offset(i, 0).Value .ComboBox1.AddItem v Next ComboBox1.ListIndex = -1 End With End If End Sub
Private Sub ComboBox1_change() If OptionButton1 = True Then vlookup1 Else vlookup1 End If End Sub Private Sub vlookup1() Dim myquestion, rep As String Dim Plage As Range
myquestion = usf1.ComboBox1
Set Plage = Sheets("Feuil4" ).Range("b3:c14" )
On Error GoTo pas_de_result rep = Application.WorksheetFunction.vlookup(myquestion, Plage, li)
usf1.TextBox5 = rep Exit Sub
pas_de_result: TextBox5.Value = "pas de résultat" End Sub
quelqu'un est arrivé au bout
bon en tous les cas, ne vous formalisez pas trop sur le style vba, je debute depuis 1 mois maintenant!
Marsh Posté le 17-03-2006 à 20:28:04
Un truc de fou, jy comprends rien, deux problèmes de fou.
Avant tout, ce que je souhaite.
Faire un convertiseur dunité (pouce, mm)
Jai donc placé deux boutons, option1 et 2
Puis suivant loption je remplis une combobox puis jeffectue un vlookup.
Pour optionbutton1 cela fonctionne très bien mais pour loption deux, jai un décalage dun rang et je comprends pas pourquoi
Ex
Aa a1
BB b2
Cc C3
Lorsqu je tape a1 jai rien puis en b2 je trouve Aa ???
Mon deuxième problème viens lorsque je remplace aa a1 etc par les vrais valeurs
¼ 20 x 27
1 26 x 34
4 102 x 114
dans ce cas les resultats sont délirants, jai beau avoir remplis les valeurs avec = « ¼ » comme du texte cela continue de ma donner des resultats erronés
je trouve vraiment pas de solution.
Si quelquun y comprend quelque chose voici en tous les cas mon programme
A+ merci bien
Private Sub OptionButton1_Click()
Dim v As String
With usf1
If OptionButton1 = True Then
li = 2
.ComboBox1.Clear
For i = 2 To 14
v = Sheets("feuil4" ).Range("b1" ).Offset(i, 0).Value
.ComboBox1.AddItem v
Next
ComboBox1.ListIndex = -1
End If
End With
End Sub
Private Sub OptionButton2_Click()
Dim v As String
li = 1
If OptionButton2 = True Then
With usf1
usf1.ComboBox1.Clear
For i = 2 To 14
v = Sheets("feuil4" ).Range("c1" ).Offset(i, 0).Value
.ComboBox1.AddItem v
Next
ComboBox1.ListIndex = -1
End With
End If
End Sub
Private Sub ComboBox1_change()
If OptionButton1 = True Then
vlookup1
Else
vlookup1
End If
End Sub
Private Sub vlookup1()
Dim myquestion, rep As String
Dim Plage As Range
myquestion = usf1.ComboBox1
Set Plage = Sheets("Feuil4" ).Range("b3:c14" )
On Error GoTo pas_de_result
rep = Application.WorksheetFunction.vlookup(myquestion, Plage, li)
usf1.TextBox5 = rep
Exit Sub
pas_de_result:
TextBox5.Value = "pas de résultat"
End Sub
quelqu'un est arrivé au bout
bon en tous les cas, ne vous formalisez pas trop sur le style vba, je debute depuis 1 mois maintenant!
tchao