Rechercher : dans
Par :

[Excel/VBA] Problème List Box vide

Dernière réponse le 1 avr 2009 à 12:29:51 Yohann P, le 1 avr 2009 à 11:22:00 
 Signaler ce message aux modérateurs

Bonjour,
je souhaite créer un classeur excel contenant plusieurs feuilles contenant elles-mêmes plusieurs listbox (activex) ou combobox.

Je pourrais ensuite programmer des actions/évènements en fonction des choix faits.

Mon problème est qu'à l'ouverture du ficher excel, les listes déroulantes sont vides, et je ne vois pas le problème de programmation (je suis très débutant en vb)

j'ai mis dans vb le code suivant (dans Feuil1) :

Private Sub Worksheet_Initialize()


PhysicalStateBox.Clear
ParticleSizeUnitBox.Clear
HandledSubstanceUnitBox.Clear

PhysicalStateBox.AddItem "Gaz"
PhysicalStateBox.AddItem "Liquid"
PhysicalStateBox.AddItem "Solid"
ParticleSizeUnitBox.AddItem "cm"
ParticleSizeUnitBox.AddItem "mm"
ParticleSizeUnitBox.AddItem "µm"
ParticleSizeUnitBox.AddItem "nm"
HandledSubstanceUnitBox.AddItem "mg"
HandledSubstanceUnitBox.AddItem "g"
HandledSubstanceUnitBox.AddItem "kg"
HandledSubstanceUnitBox.AddItem "tons"


End Sub

J'ai bien nommé les list box comme il le fallait bien sûr.

Merci de votre aide.

Yohan

Configuration: Windows XP
Firefox 3.0.6

Meilleures réponses pour « [Excel/VBA] Problème List Box vide » dans :
[VBA]Connecter une base de donnée (MDB) à excel VoirConnecter une base de donnée access (MDB) dans une application excel. Ajouter la référence Microsoft DAO object librairy X.X Dans un module général (Module1 par exemple) coller le code ci-dessous Sub CopieDBaccess() Dim BDexp As...

1

lermite222, le 1 avr 2009 à 11:29:30

Bonjour,
Dans excel, que ce soit le 2007 ou précédant il n'y à pas de fonction Initialize
Tu peu le mettre dans Activate.
A+ L'expérience instruit plus sûrement que le conseil. (André G­ide)  
Si tu te cogne à un pot et que ça sonne creux, c'est pas for­cément le pot qui est vide. ;-)(Confucius)

Répondre à lermite222

2

Yohann P, le 1 avr 2009 à 11:34:46

J'ai essayé mais ça ne fonctionne toujours pas...

Répondre à Yohann P

3

lermite222, le 1 avr 2009 à 11:40:36

Pour que Activate soit valider il faut un changement de feuille. L'expérience instruit plus sûrement que le conseil. (André G­ide)  
Si tu te cogne à un pot et que ça sonne creux, c'est pas for­cément le pot qui est vide. ;-)(Confucius)

Répondre à lermite222

4

Yohann P, le 1 avr 2009 à 12:15:32

Ok merci ça fonctionne quand on change de feuille.
Mais là ça ne me convient pas car quand je quitte et reviens sur la feuille, les choix sélectionnés sont partis !
Je ne peux donc pas exploiter les infos...

une solution?

Répondre à Yohann P

5

 lermite222, le 1 avr 2009 à 12:29:51

Mettre ce code dans un module général. (Module1 par exemple)

Public Sub Combo_Initialize()
Dim TB, i As Integer
    TB = Array("cm", "mm", "µm", "nm", "mg", "g", "kg", "tons")
    With Sheets("Feuil1")
        .PhysicalStateBox.Clear
        .ParticleSizeUnitBox.Clear
        .HandledSubstanceUnitBox.Clear
        .PhysicalStateBox.AddItem "Gaz"
        .PhysicalStateBox.AddItem "Liquid"
        .PhysicalStateBox.AddItem "Solid"
        For i = 0 To 3: .ParticleSizeUnitBox.AddItem TB(i): Next
        For i = 4 To 7: .HandledSubstanceUnitBox.AddItem TB(i): Next
    End With
End Sub

et dans ThisWorkBook
Private Sub Workbook_Open()
    Call Combo_Initialize
End Sub

Tu sauve et ré ouvre le classeur...
L'expérience instruit plus sûrement que le conseil. (André Gide)  
Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)

Répondre à lermite222