Combobox à partir de cellules variables sous excel

[Résolu]
Signaler
Messages postés
11
Date d'inscription
mardi 4 juillet 2006
Statut
Membre
Dernière intervention
14 décembre 2006
-
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
-
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

Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
11
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:
Messages postés
11
Date d'inscription
mardi 4 juillet 2006
Statut
Membre
Dernière intervention
14 décembre 2006

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
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
11
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:
Messages postés
11
Date d'inscription
mardi 4 juillet 2006
Statut
Membre
Dernière intervention
14 décembre 2006

Ok merci beaucoup Tout est nickel
(mais c'est combobox2.clear, désolée de t'avoir embrouillée :)
Merci pour tout
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
11
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: