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 d'ajouter une valeur à une combobox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Ingénieur Supply Chain
    Inscrit en
    Juillet 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Supply Chain

    Informations forums :
    Inscription : Juillet 2015
    Messages : 17
    Par défaut Impossible d'ajouter une valeur à une combobox
    Bonjour,

    J'ai un formulaire qui contient 4 OptionButton qui déterminent la valeur de ComboBox1 Puis ComboBox1 contrôle la valeur de Combobox2. Cependant il semblerait que dans mon code il y ait quelque chose qui m'empêche de donner une valeur à ComboBox3 (qui est indépendant des deux autres). Mon code en entier est le suivant:

    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
     
    Private Sub BoltsButton_Click()
     Me.ComboBox1.Clear
     Options
    End Sub
     
    Private Sub ComboBox3_Change() 'J'ai aussi utilisé Me.ComboBox3.List = Sheets("Feuil1").Range("Thickness").Value et cela ne fonctionne pas
      With Me.ComboBox3
       .AddItem "1"
       .AddItem "2"
       .AddItem "3"
      End With
    End Sub
     
     
    Private Sub ScrewsButton_Click()
     Me.ComboBox1.Clear
     Options
    End Sub
     
    Private Sub SheetsButton_Click()
     Me.ComboBox1.Clear
     Options
    End Sub
     
    Private Sub Options()
     Select Case True
      Case SheetsButton
       Me.ComboBox1.List = Sheets("Feuil1").Range("A1:A3").Value
      Case BoltsButton
       Me.ComboBox1.List = Sheets("Feuil1").Range("A5:A10").Value
      Case ScrewsButton
       Me.ComboBox1.List = Sheets("Feuil1").Range("A12:A16").Value
      Case Else
       Me.ComboBox1.List = Sheets("Feuil1").Range("A18:A25").Value
     End Select
    End Sub
     
    Private Sub VariousButton_Click()
     Me.ComboBox1.Clear
     Options
    End Sub
     
    Private Sub ComboBox1_Change()
     Dim Materiau As String
     Dim c As Range
     
     Me.ComboBox2.Clear
     If Me.ComboBox1.ListIndex > -1 Then
      Materiau = Me.ComboBox1
      Set c = Worksheets("Feuil1").Range("A:A").Find(Materiau, LookIn:=xlValues, Lookat:=xlWhole)
      If Not c Is Nothing Then
       Me.ComboBox2.List = Application.Transpose(c.Offset(, 1).Resize(, 4).Value)
       Set c = Nothing
      End If
     End If
    End Sub
    Je voudrais aussi que ComboBox3 ne soit activé que quand SheetsButton l'est. Comment faire? J'ai essayé .Enabled mais ça ne fonctionne pas.

  2. #2
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Bonjour

    Tu utilises l'événement Private Sub ComboBox3_Change(), ce qui signifie que le code ne s'effectuera que lorsque tu changes la valeur de la ComboBox.
    Ainsi, si tu souhaites initialiser ta ComboBox dès l'ouverture de ton formulaire, fait le dans l'événement Private Sub UserForm_Initialize().
    Voila !

    Cordialement,
    Kimy

  3. #3
    Membre averti
    Femme Profil pro
    Ingénieur Supply Chain
    Inscrit en
    Juillet 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Supply Chain

    Informations forums :
    Inscription : Juillet 2015
    Messages : 17
    Par défaut Merci
    Merci beaucoup, en plus d'avoir résolu mon problème tu m'as aussi appris ce que signifiait Private Sub! Super

    Par contre j'avais posé une deuxième question. Comment on active/desactive une combobox selon par exemple un OptionButton sélectionné?

  4. #4
    Inactif  
    Homme Profil pro
    Analyste-Programmeur / Intégrateur ERP
    Inscrit en
    Mai 2013
    Messages
    2 511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-Programmeur / Intégrateur ERP
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 511
    Par défaut
    Bonjour, c'est bien l'instruction .Enabled pourtant, il devait y avoir un problème dans la construction de ton code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub SheetsButton_Click()
     Me.ComboBox1.Clear
     Options
     
     If SheetsButton.value = True then
        ComboBox3.Enabled = True
     Else
        ComboBox3.Enabled = False
     end if
     
    End Sub
    Après il ne faut pas oublier non plus de désactiver ta ComboBox lors de l'initialisation de ton UserForm, sinon, elle sera active de base.

  5. #5
    Membre averti
    Femme Profil pro
    Ingénieur Supply Chain
    Inscrit en
    Juillet 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Supply Chain

    Informations forums :
    Inscription : Juillet 2015
    Messages : 17
    Par défaut
    Merci! je n'avais pas désactivé dans l'initialisation de l'UserForm! Maintenant ça fonctionne.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/01/2008, 14h44
  2. ajouter des valeurs à une liste déroulante
    Par Simon2 dans le forum IHM
    Réponses: 3
    Dernier message: 30/07/2007, 23h59
  3. Réponses: 6
    Dernier message: 21/04/2007, 02h11
  4. Réponses: 1
    Dernier message: 25/09/2006, 17h15
  5. Ajout d'une valeur à une liste
    Par NicoNGRI dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/01/2005, 12h34

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