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 :

Remplir une combobox en VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 29
    Par défaut Remplir une combobox en VBA
    Bonjour forum,

    J'ai besoin d'aide pour mon code VBA:

    Dans mon formulaire j'ai une liste déroulante (Combo box) et mon soucis est que j'aimerais bien mettre une liste de choix justement dans cette Combo box. Comment dois-je m'y prendre et à quel endroit dans le code VBA?

    De même, est-il possible de trier dans mon formulaire? En sélectionnant un choix dans ma combobox 1, cela réduit les possibilités dans ma combobox 2...

    Enfin, dernière question, j'ai adressé l'ébauche de mon fichier à mon supérieur qui ne peut ouvrir la macro pour raison de sécurité. Les modifications à faire pour qu'il puisse l'ouvrir sont elles a effectuer sur mon fichier ou sur ses paramètres de sécurité à lui? Le problème est que plusieurs personnes utiliseront se fichier au futur donc si chacun doit modifier ses paramètres de sécurité pour pouvoir ouvrir mon fichier, je vais devoir faire une communication interne très intense...

    Merci de votre aide

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2010
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 68
    Par défaut
    je devrais pouvoir t'aider =)



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub UserForm_Initialize()
    CB_cells.Clear 'vide la liste
    CB_cells.AddItem "N1" 'initialisation des elements de la liste
    CB_cells.AddItem "N2" 'voila comment on rempli une combo box
    CB_cells.AddItem "N3"
    CB_cells.AddItem "N4"
    CB_cells.AddItem "S1"
    CB_cells.AddItem "S2"
    CB_cells.AddItem "S3"
    CB_cells.AddItem "S4"
    CB_cells.AddItem "S5"
    CB_cells.AddItem "Choisissez votre cellule" ' cas 9 neutre, choix obligatoire
    CB_cells.BoundColumn = 0 'les valeurs deviennent des valeurs listindex
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub CB_cells_Change() 'action lors d'un changement
    Select Case CB_cells.ListIndex 'on fait un select case pour savoir dans quel dossier chercher selon le banc choisi
    case 0 ' on a choisi le premier element de la liste
    combobox.clear
    combobox.aditem' ... bref tes instructions =)
    case 1 
    case 2 
    '...
    case else 
    end select
    end sub
    normalement quand tu ouvre excel une notification de sécurité apparait, chaque poste definit sa propre securité il me semble, et la macro ne peut rien changer (sinon ce serait trop simple =)
    edit : je travaille dans une entreprise ou je ne peux meme pas autoriser toutes les macro, il faut les accepter au cas par cas, normal, car une macro peut faire tout et n'importe quoi avec ton ordinateur
    bye
    end sub

  3. #3
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 29
    Par défaut
    Après un peu d'acharnement, j'ai réussi à créer ma liste de choix.
    Sur Excel, dans mon formulaire, je sélectionne mon choix dans ma liste de choix et là:

    Erreur d'éxecution '91': Variable objet ou variable de bloc With non définie.
    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub UserForm_Initialize()
        BOBOBOX.RowSource = "U5:U8"    
    End Sub
    (BOBOBOX étant mon nom de Combobox vous l'aurez compris)

    Qu'est ce qui se passe?

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2010
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 68
    Par défaut
    je crois que ce n'est pas vraiment comme ça qu'on ajoute un élément dans une liste

    tu as essayé mon code ?

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    Bonjour

    tu devrais trouver ton bonheur dans ce tutoriel comboBox

    à +

  6. #6
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 29
    Par défaut
    J'avais pas vu ton message avant de publier mon second message mais là, j'ai essayé ton code ifset et je ne comprends pas pourquoi ça ne marche pas et il me met que le nom est ambigu... Je suis vraiment une brel ! Quelqu'un peut m'aider?

    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
    Private Sub UserForm_Activate()
    Me.BOBOBOX.SetFocus
    End Sub
     
    Private Sub UserForm_Initialize()
        BOBOBOX.AddItem "U5" 'initialisation des elements de la liste
        BOBOBOX.AddItem "U6"
        BOBOBOX.AddItem "U7"
        BOBOBOX.AddItem "Choisissez votre cellule" ' cas 9 neutre, choix obligatoire
        BOBOBOX.BoundColumn = 0 'les valeurs deviennent des valeurs listindex
    End Sub
     
    Private Sub BOBOBOX_Change() 'action lors d'un changement
    Select Case BOBOBOX.ListIndex 'on fait un select case pour savoir dans quel dossier chercher selon le banc choisi
    Case 0 ' on a choisi le premier element de la liste
    ComboBox.Clear
    ComboBox.aditem ' ... bref tes instructions =)
    Case 1
    Case 2
    '...
    Case Else
    End Select
    End Sub
    Merci à celui qui répondra

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

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    A un moment tu as écris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BOBOBOX.RowSource = "U5:U8"
    question, c'est le texte "U5" ou le contenu de la cellule "U5" que tu veux voir dans la comboBox?

    car si c'est le contenu de la cellule il faudrai remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        BOBOBOX.AddItem "U5" 'initialisation des elements de la liste
        BOBOBOX.AddItem "U6"
        BOBOBOX.AddItem "U7"
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        BOBOBOX.AddItem Range("U5") 'initialisation des elements de la liste
        BOBOBOX.AddItem Range("U6")
        BOBOBOX.AddItem Range("U7")

  8. #8
    Membre confirmé
    Inscrit en
    Avril 2010
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 68
    Par défaut
    tu as surement deux fonction comportant un nom identique

  9. #9
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 29
    Par défaut
    Alors, j'avance en faisant tout ce que je trouve mais ça ne marche toujours pas:

    Quand je mets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub UserForm_Initialize()
     
            BOBOBOX.AddItem "Ingrédients"
            BOBOBOX.AddItem "Emballages"
            BOBOBOX.AddItem "Techniques"
     
    End Sub
    J'ai ce code d'erreur: Erreur d'exécution '91' : Variable objet ou variable bloc WITH non- definie

    Alors j'essaye avec un with:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub UserForm_Initialize()
     
            BOBOBOX.AddItem "Ingrédients"
            BOBOBOX.AddItem "Emballages"
            BOBOBOX.AddItem "Techniques"
       With BOBOBOX
            BOBOBOX.AddItem "Ingrédients"
            BOBOBOX.AddItem "Emballages"
            BOBOBOX.AddItem "Techniques"  
    End With
    End Sub
    Si je fais ça j'obtiens le même message d'erreur. Alors déjà je ne vois pas à quoi il sert ce "with"...
    Et quand je mets que le with

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub UserForm_Initialize()
     
       With BOBOBOX
            BOBOBOX.AddItem "Ingrédients"
            BOBOBOX.AddItem "Emballages"
            BOBOBOX.AddItem "Techniques"
    End With
    End Sub
    ...j'ai toujours le même message d'erreur!
    Ca m'enerve! Je n'arrive pas à comprendre ce langage! Suis-je perdu et voué à subir echec sur echec dans mes tentatives VBA?

  10. #10
    Membre confirmé
    Inscrit en
    Avril 2010
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 68
    Par défaut
    est-ce que tu as crée ta bobobox avec l'editeur vba ?

    (mon code est correcte, copié collé de ma macro)

    avant de changer les nom, crée tes objets graphiquement avec l'editeur, puis change les noms une fois que cela fonctionne =)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub UserForm_Initialize()
     
       With BOBOBOX
            .AddItem "Ingrédients"
            .AddItem "Emballages"
            .AddItem "Techniques"
    End With
    End Sub
    c'est comme ça qu'on utilise un with

Discussions similaires

  1. [VBA-E] Comment remplir une comboBox avec une macro
    Par Tchupacabra dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/04/2007, 11h16
  2. [VBA-E] Comment remplir une ComboBox ?
    Par yaya54 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/03/2006, 09h03
  3. [C#] Remplir une combobox avec le champs d'une table Access
    Par Damsou dans le forum Windows Forms
    Réponses: 4
    Dernier message: 23/06/2005, 15h31
  4. [VB.NET] Remplir une ComboBox avec une requete sql
    Par graphicsxp dans le forum Windows Forms
    Réponses: 6
    Dernier message: 22/03/2005, 15h29
  5. Réponses: 2
    Dernier message: 26/07/2004, 13h34

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