Combobox à partir de cellules variables sous excel

Résolu
Dospace Messages postés 11 Date d'inscription mardi 4 juillet 2006 Statut Membre Dernière intervention 14 décembre 2006 - 13 déc. 2006 à 16:12
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 - 14 déc. 2006 à 17:25
Bonjour,
débutante en vba excel j'utilise beaucoup le système D mais là je sèche... Donc si quelqu'un d'un peu plus compétent pouvait m'aider ce serait génial :)

J'ai un userform = userform3
2 combobox dessus
La première combobox (combobox1) se remplit "normalement" ("site1", "site2", "site3")
la seconde (combobox2) à partir de cellules sur excel en fonction du choix de la combobox1 (chaque choix de la combobox 1 correspond à une page sur excel).
 Le problème : le nombre de cellules permettant de remplir le combobox2 peut être modifié (sur la page "site1" à partir de la cellule "F8" jusqu'à la cellule "F?", idem pour la page "site2" et pour la page "site3")
Mon code:
Private Sub userform_Initialize()


'liste déroulante combobox1 site userform3 
    UserForm3.ComboBox1.AddItem ("Site1")
    UserForm3.ComboBox1.AddItem ("Site2")
    UserForm3.ComboBox1.AddItem ("Site3")

'liste déroulante comobox2 projet userform3
    If UserForm3.ComboBox1.Value = "site1" Then
             Sheets("site1").Select
            Range("f8").Select
            Do while ActiveCell<>""
               For Each c In Selection.Cells
               ComboBox2.AddItem (c.Value)
                Next
            Loop
   End if
End sub

Je n'ai pas encore fait pour le site2 et le site3 vu que la combox2 ne fonctionne pas...
La combobox1 elle fonctionne bien...la combobox2 ne fait rien :s

Quelqu'un voit-il mon erreur de débutante? J'espère avoir été assez claire
Merci beaucoup

25 réponses

drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
14 déc. 2006 à 16:43
Private Sub ComboBox1_Change()

'liste déroulante combobox2 projet userform3
    If UserForm3.ComboBox1.Value = "Site1" Then
    Dim tableau()
    Dim j As Integer
    Sheets("Site1").Select
    j = 8
    Do
    ReDim Preserve tableau(1 To j)
    tableau(j) = Range("F" & j).Value
    ComboBox2.AddItem tableau(j)
    j = j + 1
    Loop Until (Range(("F" & j)).Value) = "" Or IsEmpty(Range(("F" & j)).Value)

et effectivement il n'y a pas d'espace entre Else et IF
   
ElseIf  UserForm3.ComboBox1.Value = "Site2" Then
       Sheets("Site2").Select
    j = 8
    Do
    ReDim Preserve tableau(1 To j)
    tableau(j) = Range("F" & j).Value
    ComboBox2.AddItem tableau(j)
    j = j + 1
    Loop Until (Range(("F" & j)).Value) = "" Or IsEmpty(Range(("F" & j)).Value)
    End If
  
End Sub     

à mettre dans l'évenement initialize du userform, parce que listeindex=0, mais le 1er élément de la liste en valeur par défaut dans la combo, donc à chaque fois que tu changeais la valeur, site1 se remettai par défaut!

Userform_Initialyze()

'liste déroulante combobox1 site userform3
    UserForm3.ComboBox1.AddItem ("Site1")
    UserForm3.ComboBox1.AddItem ("Site2")
    UserForm3.ComboBox1.AddItem ("Site3")
      ComboBox1.ListIndex = 0
   
End Sub






 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
Dospace Messages postés 11 Date d'inscription mardi 4 juillet 2006 Statut Membre Dernière intervention 14 décembre 2006
14 déc. 2006 à 17:00
Erf que ferais-je sans toi???
Un dernier détail toutefois...et après promis j'arrête de t'embêter
Tout fonctionne bien à présent
Mais quand je sélectionne "site1" sur combobox1, j'ai différents choix sur la combobox2: A B C D
Quand je sélectionne "site2" sur combobox1, la combobox2 devraient me donner E F G H et là elle me donne A B C D E F G H

C'est rien par rapport au reste mais promis après je te laisse tranquille
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
14 déc. 2006 à 17:15
Oui c'est normal, tu as toujours les valeurs précédente dedans!

Après :
Sheets("Site1").Select
combobox1.clear

Sheets("Site2").Select
combobox1.clear

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
Dospace Messages postés 11 Date d'inscription mardi 4 juillet 2006 Statut Membre Dernière intervention 14 décembre 2006
14 déc. 2006 à 17:23
Ok merci beaucoup Tout est nickel
(mais c'est combobox2.clear, désolée de t'avoir embrouillée :)
Merci pour tout
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
14 déc. 2006 à 17:25
Ha oui dsl entre tous ces conbobox on si perd!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
Rejoignez-nous