|
|
|
|
onra, le mardi 22 juillet 2008 à 11:55:52Configuration: Windows 2000 Internet Explorer 6.0
salut, je ne suis pas très forte en VBA mais je vais essayer de t'aider
Pour remplir la combobox, en générale j'écrit la liste dans une colonne d'excel et puis je fais un truc de sorte combobox1.rowsource="Range(....... ET a ta place j'aurais fait a=combobox1.value If a = MOE Then Workbooks("Test").Sheets(1).Range("A1") = TextBox2 End If End Sub Je ne sais pas si ca peux t'aider... |
Bonjour,
Pas de problème dans la manière dont tu remplis ta ComboBox Le code à modifier est celui de Private Sub ComboBox1_Change() Tu peux passer par une variable intermédiaire, comme le suggère sabouna, mais ce n'est pas nécessaire. Le contenu de ta liste déroulante est ComboBox.Value (mais c'est vrai que le .Value est facultatif) Par contre, son contenu étant une chaîne de caractères, il faut le mettre entre guillemets. Après, pour traiter tes différents cas, tu fais une succession de tests avec If ... ElseIf ... End If Private Sub ComboBox1_Change()
If ComboBox1.Value = "MOE" Then
Workbooks("Test").Sheets(1).Range("A1") = TextBox2.Value
ElseIf ComboBox1.Value = "MOA" Then
Workbooks("Test").Sheets(1).Range("B1") = TextBox2.Value
ElseIf ComboBox1.Value = "Aléas" Then
Workbooks("Test").Sheets(1).Range("C1") = TextBox2.Value
End If
End Sub
Pour alléger, tu peux éviter de répéter le nom du classeur et de la feuille en les mettant dans un With... End With Private Sub ComboBox1_Change()
With Workbooks("Test").Sheets(1)
If ComboBox1.Value = "MOE" Then
.Range("A1") = TextBox2.Value
ElseIf ComboBox1.Value = "MOA" Then
.Range("B1") = TextBox2.Value
ElseIf ComboBox1.Value = "Aléas" Then
.Range("C1") = TextBox2.Value
End If
End With
End Sub |