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 :

Impossible de charger les valeurs d'un combobox


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Par défaut Impossible de charger les valeurs d'un combobox
    Bonjour à tous,

    A ma grande surprise, les valeurs de combobox ne se chargent plus !

    J'ai essayé le code suivant dans un nouveau classeur et plus rien ne se passe ? (pas de mesaage erreur, le controle est vide) :

    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
     
    Sub chargement()
     
    UserForm1.Show
    Me.ComboBox1.AddItem "Lundi"
    Me.ComboBox1.AddItem "Mardi"
     
    End Sub
     
     
     
    Private Sub ComboBox1_Change()
     
    With UserForm1.ComboBox1
    .AddItem "val1"
    .AddItem "val2"
    .AddItem "val3"
    End With
     
     
    End Sub
    Auriez-vous une solution ?

    Un grand merci pour la réponse.

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Charge d'abord le Combo avant d'afficher le UserForm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With UserForm1
        .ComboBox1.AddItem "Lundi"
        .ComboBox1.AddItem "Mardi"
        .Show
    End With

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Par défaut
    Merci pour cette réponse. Même constat avec le code.

    Voici les propriétés de la combobox en PJ.

    Merci infiniment pour votre aide
    Images attachées Images attachées  

  4. #4
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Le code est ce qu'il y a de plus basic et les propriétés de ton Combo sont standards donc cela doit fonctionner. Où insères tu le code ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Par défaut
    Je suis bien d'accord avec toi, c'est très étonnant ?

    Je double clique sur le combobox situé sur l'userform1 et je saisie le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub ComboBox1_Change()
     
    With UserForm1
        .ComboBox1.AddItem "Lundi"
        .ComboBox1.AddItem "Mardi"
        .Show
    End With
     
    End Sub
    En PJ les propriétés de Userform1 :
    Images attachées Images attachées  

  6. #6
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    ?

    Le code est à placer dans un module standard, pas dans le combo.
    Mais...tu cherches à faire quoi exactement ?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Par défaut
    Merci pour ta réponse Fring ! Ca marche !

    Voilà ce que je cherche à faire :

    Un combobox est associé à 3 valeurs 2008 ; 2009 ; 2010. si l'une des valeurs est sélectionnée, une procédure est lancée (évenement Click ou Change).

    Lors de l'ouverture du fichier (auto_open), la combobox est chargée et une valeur par défaut est affectée ici 2008.

    Comment faire pour que lors du chargement de la combobox, celle-ci ne déclanche pas la procédure associée à l'évènement click ou change.

    Exemple de code simplifié :
    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
     
    Sub Chargement()
    'Chargement de la combobox :
     
    With Combobox1
        .AddItem "2008"
        .AddItem "2009"
        .AddItem "2010"
    End With
     
    End Sub
     
    Private Sub Combobox1_Click()
     
    'Procédure si valeur est sélectionnée
     
    MsgBox " la prodécure click est lancés "  
     
    End sub
    Encore merci pour ta réponse

  8. #8
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bon...à mon avis tu mélanges un peu tout là, le chargement d'un Combo ne déclenche pas l'événement Change ou Click de celui-ci. D'après ce que j'ai compris, essaye ceci :

    A l'ouverture du classeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
    UserForm1.Show
    End Sub
    A l'initialisation de ce UserForm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub UserForm_Initialize()
    With Me.ComboBox1
        .AddItem "2008"
        .AddItem "2009"
        .AddItem "2010"
    End With
    End Sub
    Lors de la sélection dans le Combo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub ComboBox1_Change()
    MsgBox "vous avez sélectionné l'année " & Me.ComboBox1.Value
    'Unload Me '<-- option pour désactiver le UserForm
    End Sub

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Par défaut
    Encore un grand merci.

    Effectivement avec le code que j'ai indiqué tout doit bien fonctionner !

    J'ai en fait un petit détail qui a son importance. J'affecte une valeur par défaut au combobox et c'est cette valeur qui déclenche la procédure change ou click.

    Lors du chargement le code est en fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Chargement()
    'Chargement de la combobox :
    With Combobox1
        .AddItem "2008"
        .AddItem "2009"
        .AddItem "2010"
        .value ="2008"
    End With
    End Sub

  10. #10
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Ok je n'avais pas capté cette subtilité

    Pour y remédier fais ceci :
    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
    Dim x As Boolean
     
    Private Sub ComboBox1_Change()
    If x = True Then
        MsgBox "vous avez sélectionné l'année " & Me.ComboBox1.Value
    End If
    End Sub
     
    Private Sub UserForm_Initialize()
    x = False
    With Me.ComboBox1
        .AddItem "2008"
        .AddItem "2009"
        .AddItem "2010"
        .Value = "2008"
    End With
    x = True
    End Sub

  11. #11
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 364
    Par défaut
    Bonsoir,
    Le combo est-il dans un USF ?
    Si non :
    Sans l'affichage 2008
    dans un Module,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Charge()
      With ActiveSheet.ComboBox1
        .AddItem "2008"
        .AddItem "2009"
        .AddItem "2010"
      End With
    End Sub
    dans la feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub ComboBox1_Change()
        Select Case ComboBox1.ListIndex
          Case 0: MsgBox "2008"
          Case 1: MsgBox "2009"
          Case 2: MsgBox "2010"
        End Select
    End Sub
    Avec l'affichage de 2008 (peu intéressant, oblige un click ou un changement)

    Dans un Module
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public Debut As Boolean
    Sub Charge() 
      Debut = False
      With ActiveSheet.ComboBox1
        .Clear
        .AddItem "2008"
        .AddItem "2009"
        .AddItem "2010"
        .ListIndex = 0
      End With
      Debut = True
    End Sub
    Dans la feuille,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub ComboBox1_Change()
      If Debut = True Then
        Select Case ComboBox1.ListIndex
          Case 0: MsgBox "2008"
          Case 1: MsgBox "2009"
          Case 2: MsgBox "2010"
        End Select
      End If
    End Sub
    Fichiers attachés Fichiers attachés

  12. #12
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Citation Envoyé par OrDonc Voir le message
    Bonsoir,
    Le combo est-il dans un USF ?
    Citation Envoyé par philoflore Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub chargement()
    
    UserForm1.Show '<----
    Me.ComboBox1.AddItem "Lundi"
    Me.ComboBox1.AddItem "Mardi"
    
    End Sub

  13. #13
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 364
    Par défaut
    Re,

    Désolé pour cette stupide question .
    J'ai l'impression, après relecture de la discussion, de ne l'avoir prise qu'à la septième intervention. ?

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Par défaut
    Un grand merci Fring, simple et efficace que du bonheur !!!!!

    Félicitation !!!!!!!!!!!!!

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

Discussions similaires

  1. [Débutant] Impossible d'afficher les valeurs d'une requête dans une combobox
    Par Jah73 dans le forum ASP.NET
    Réponses: 31
    Dernier message: 18/07/2013, 09h43
  2. [Débutant] Impossible d'afficher les valeurs d'une requête dans une combobox
    Par Jah73 dans le forum VB.NET
    Réponses: 6
    Dernier message: 14/06/2013, 19h08
  3. [PEAR][HTML_QuickForm] Impossible de récupérer les valeurs du formulaire
    Par Mainman dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 29/05/2007, 12h15
  4. [Configuration] Impossible de charger les extensions
    Par Halukard dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 06/06/2006, 23h11
  5. [SERVLET][JDBC] Impossible de charger les pilotes
    Par cedric.picard dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 07/10/2004, 14h11

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