IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Initialisation et utilisation de combobox [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 41
    Par défaut Initialisation et utilisation de combobox
    C'est la première fois que j'utilise des combobox et je n'arrive pas à les faire fonctionner.

    J'ai créer une zone de liste déroulante sur la feuille 1 d'un classeur. Par défaut je veux qu'il y ait 10 lignes dans cette liste avec des valeurs de 0 à 100 par pas de 10. Donc j'ai initialisé la combobox avec le code suivant (qui ne marche pas):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub Userform_Initialize()
     
    ComboBox1.AddItem "0"
    ComboBox1.AddItem "10"
    ComboBox1.AddItem "20"
    ComboBox1.AddItem "30"
    ComboBox1.AddItem "40"
    ComboBox1.AddItem "50"
    ComboBox1.AddItem "60"
    ComboBox1.AddItem "70"
    ComboBox1.AddItem "80"
    ComboBox1.AddItem "90"
    ComboBox1.AddItem "100"
     
    End Sub
    Ensuite je veux écrire dans des cellules à côté de la zone de liste déroulante, des valeurs issues d'un tableau calculé dans un module. Donc je transfert la valeur issue de zone de liste déroulante par argument vers le module où j'ai calculé le tableau dont je veux copier les valeur dans la feuille à côté de la zone de liste déroulante.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub ComboBox1_Change()
        Indchoice = ComboBox1.Value
        Call Fonction2(Indchoice)
    End Sub
    Et enfin voici le code qui me permet d'écrite les données dans la feuille d'après la valeur de la zone de liste déroulante choisie.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    Public Sub Fonction2(Indresume)
     
    Select Case Indresume
    Case 0
    Feuil1.Cells(6, 9).Value = It1(0)
    Feuil1.Cells(7, 9).Value = It2(0)
    Feuil1.Cells(8, 9).Value = It3(0)
    Feuil1.Cells(9, 9).Value = Icalc0(0)
    Case 10
    Feuil1.Cells(6, 9).Value = It1(1)
    Feuil1.Cells(7, 9).Value = It2(1)
    Feuil1.Cells(8, 9).Value = It3(1)
    Feuil1.Cells(9, 9).Value = Icalc1(0)
    Case 20
    Feuil1.Cells(6, 9).Value = It1(2)
    Feuil1.Cells(7, 9).Value = It2(2)
    Feuil1.Cells(8, 9).Value = It3(2)
    Feuil1.Cells(9, 9).Value = Icalc2(0)
    Case 30
    Feuil1.Cells(6, 9).Value = It1(3)
    Feuil1.Cells(7, 9).Value = It2(3)
    Feuil1.Cells(8, 9).Value = It3(3)
    Feuil1.Cells(9, 9).Value = Icalc3(0)
    Case 40
    Feuil1.Cells(6, 9).Value = It1(4)
    Feuil1.Cells(7, 9).Value = It2(4)
    Feuil1.Cells(8, 9).Value = It3(4)
    Feuil1.Cells(9, 9).Value = Icalc4(0)
    Case 50
    Feuil1.Cells(6, 9).Value = It1(5)
    Feuil1.Cells(7, 9).Value = It2(5)
    Feuil1.Cells(8, 9).Value = It3(5)
    Feuil1.Cells(9, 9).Value = Icalc5(0)
    Case 60
    Feuil1.Cells(6, 9).Value = It1(6)
    Feuil1.Cells(7, 9).Value = It2(6)
    Feuil1.Cells(8, 9).Value = It3(6)
    Feuil1.Cells(9, 9).Value = Icalc6(0)
    Case 70
    Feuil1.Cells(6, 9).Value = It1(7)
    Feuil1.Cells(7, 9).Value = It2(7)
    Feuil1.Cells(8, 9).Value = It3(7)
    Feuil1.Cells(9, 9).Value = Icalc7(0)
    Case 80
    Feuil1.Cells(6, 9).Value = It1(8)
    Feuil1.Cells(7, 9).Value = It2(8)
    Feuil1.Cells(8, 9).Value = It3(8)
    Feuil1.Cells(9, 9).Value = Icalc8(0)
    Case 90
    Feuil1.Cells(6, 9).Value = It1(9)
    Feuil1.Cells(7, 9).Value = It2(9)
    Feuil1.Cells(8, 9).Value = It3(9)
    Feuil1.Cells(9, 9).Value = Icalc9(0)
    Case 100
    Feuil1.Cells(6, 9).Value = It1(10)
    Feuil1.Cells(7, 9).Value = It2(10)
    Feuil1.Cells(8, 9).Value = It3(10)
    Feuil1.Cells(9, 9).Value = Icalc10(0)
    End Select
     
    End Sub
    J'ai l'impression que ça devrait marcher, je vois pas de difficultés particulières, j'ai pas de message d'erreur.... Mais ça ne marche pas
    La zone de liste déroulante ne contient aucune valeur et aucune fonction n'est lancée quand je "touche" la listé déroulante, même quand je met "click" plutôt que "change" pour lancer le code de la combobox.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Salut,

    As-tu créé un UserForm?..

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 41
    Par défaut
    J'ai créé dans Excel à partir de l'icône "Boîte à outils Controles" une "zone de liste déroulante" que j'ai placée sur la feuille 1 du classeur Excel qui à bien le nom ComboBox1. En revanche dans la fenêtre Visual Basic je n'ai pas de Userfom.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Je me disais aussi...

    Commence par http://silkyroad.developpez.com/VBA/UserForm/ et enchaîne sur http://silkyroad.developpez.com/VBA/ControlesUserForm/.

    Suis cela pas à pas et tu y arriveras. Ces tutoriels sont parfaits pour débuter et c'est toujours par là qu'un débutant devrait commencer.

    Bref, essaie par toi-même avec cela (tu devrais y arriver) et si tu as un problème alors reviens nous voir. Mais ne saute pas les étapes...

    Bonne chance !

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    déjà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ComboBox1.AddItem "0"
    ComboBox1.AddItem "10"
    ComboBox1.AddItem "20"
    ComboBox1.AddItem "30"
    ComboBox1.AddItem "40"
    ComboBox1.AddItem "50"
    ComboBox1.AddItem "60"
    ComboBox1.AddItem "70"
    ComboBox1.AddItem "80"
    ComboBox1.AddItem "90"
    ComboBox1.AddItem "100"
    s'écrit plus rationnellement ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dim i as integer
    For i = 0 To 10
      ComboBox1.AddItem i * 10
    Next
    J'ai ensuite des difficultés à comprendre ceci :

    Ensuite je veux écrire dans des cellules à côté de la zone de liste déroulante, des valeurs issues d'un tableau calculé dans un module. Donc je transfert la valeur issue de zone de liste déroulante par argument vers le module où j'ai calculé le tableau dont je veux copier les valeur dans la feuille à côté de la zone de liste déroulante.
    si ta combobox se trouve sur un UserForm...

    Ce n'est pas très précis, comme question ...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 41
    Par défaut
    La question principale est :
    - Pourquoi la combobox n'est pas initialisé à l'ouvertue du fichier avec les valeurs que j'ai saisi?

    Pour le reste je pense (j'espère...) arriver à m'en sortir.

    Je regarde tes liens et je vindrai te dire si j'y suis arrivé.

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    La réponse principale est tout simplement que tu n'as pas créé de Combobox...

    Lis les tutoriels et tu comprendras

  8. #8
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    La question principale est :
    - Pourquoi la combobox n'est pas initialisé à l'ouvertue du fichier avec les valeurs que j'ai saisi?
    Je dirais plus tôt que la réponse principale est :
    "La subroutine userform_initialize se lance que le userform s'initialise. Quel userforme me diras-tu, hé bien moi aussi je me pose la question."
    Bon de plus tu semble confondre listebox et combobox

    Commence par les tutos que ta donné Dead le premier te permettra de comprendre ton problème, le deuxième d'utiliser la combobox, ensuite
    Encore plus de lecture
    http://silkyroad.developpez.com/VBA/EvenementsClasseur/
    ainsi que celui ci si le premier ne suffit pas
    http://silkyroad.developpez.com/VBA/EvenementsFeuille/

    Je sent que ton après midi viens d'être remplie

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 41
    Par défaut
    Après lecture des tutoriels (forts intéressants), je ne vois pas ce que j'ai oublié de faire pour initialiser ma combobox, qui est toujours vide à chaque ouverture du fichier malgrès les codes (visibles un peu plus tôt dans la discussion) que j'ai saisi.

  10. #10
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Si tu n'y mets pas du tien, ça ne va vraiment pas être possible... Franchement, je ne te crois vraiment pas quand tu dis avoir lu les tutoriels. Et dans ce cas, je ne sais pas pour les autres, mais pour ma part, je ne peux plus rien faire pour toi.

    A part t'indiquer qu'un paragraphe "II. Créer un UserForm" existe dans le premier tutoriel et que c'est par là que tu aurais dû commencer.

    EDIT : première phrase du 2ème tuto ==>
    Vous devez tout d'abord créer un UserForm dans votre classeur afin d'y ajouter des contrôles.
    Juste comme ça vu que tu as lu les tutos, tu n'aurais pas un petit doute sur ce que tu as fait ?.. Allez, je pense t'avoir assez aidé et même beaucoup trop.

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] Utilisation de ComboBox
    Par Troopers dans le forum Windows Forms
    Réponses: 4
    Dernier message: 04/11/2009, 13h07
  2. Construire un critère de filtre en utilisant des ComboBox
    Par mary17 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 20/04/2007, 09h19
  3. utilisation de combobox
    Par fredppp dans le forum VC++ .NET
    Réponses: 1
    Dernier message: 04/04/2007, 07h55
  4. Questions concernant l'utilisation des ComboBox
    Par philguio dans le forum Windows Forms
    Réponses: 2
    Dernier message: 09/01/2007, 11h26
  5. Utilisation de combobox et d'une animation flash
    Par naima2005 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 04/06/2006, 20h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo