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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Points : 31
    Points
    31
    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 éminent
    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
    Points : 7 964
    Points
    7 964
    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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Points : 31
    Points
    31
    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 éminent
    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
    Points : 7 964
    Points
    7 964
    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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Points : 31
    Points
    31
    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 éminent
    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
    Points : 7 964
    Points
    7 964
    Par défaut
    ?

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

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

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Points : 31
    Points
    31
    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 éminent
    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
    Points : 7 964
    Points
    7 964
    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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Points : 31
    Points
    31
    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 éminent
    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
    Points : 7 964
    Points
    7 964
    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 averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 364
    Points : 350
    Points
    350
    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 éminent
    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
    Points : 7 964
    Points
    7 964
    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 averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 364
    Points : 350
    Points
    350
    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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Points : 31
    Points
    31
    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