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 :

rajouter à un userform déjà existant une liste déroulante


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juillet 2019
    Messages : 4
    Points : 3
    Points
    3
    Par défaut rajouter à un userform déjà existant une liste déroulante
    Bonjour à tous, je suis un jeune étudiant travaillant sur un projet nécessitant une utilisation de VBA et je débute à peine ce langage, je rencontre une difficulté j'ai besoin de rajouter à un userform déjà existant une liste déroulante afin d'intégrer des information pour faciliter le remplissage d'un formulaire j'ai cherché sans connaitre mon erreur car ce que j’essaie ne fonctionne pas. je joins à cela le programme existant et le formulaire ainsi que la liste que j'aimerai ajouté s'il vous plait besoin d'aide.

    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    Private Sub BValiderArret_Click()
    
    ThisWorkbook.Sheets("Suivi pannes machines").Activate
    
    DeverouillerFeuilles 'retirer les protections de la feuille
    
    If inter.Text = "" Or num.Text = "" Or dat.Text = "" Or at.Text = "" Or mach.Text = "" Or symp.Text = "" Or tech.Text = "" Or sol.Text = "" Or amelio.Text = "" Or inter1.Text = "" Or heure1.Text = "" Then
    
        If inter.Text = "corrective" Or inter.Text = "Sécurité - FSR" Then
            
            If diag.Text = "" Or cause.Text = "" Then
                MsgBox "Remplir tous les champs du formulaire" 'message d'erreur
            End If
            
        End If
                
        MsgBox "Remplir tous les champs du formulaire" 'message d'erreur
        
    Else
    
            i = 6
        
            While Cells(i, 2) <> ""
            i = i + 1
            Wend
            
        Cells(i, 6).Value = inter.Text
        Cells(i, 1).Value = num.Text
        Cells(i, 2).Value = dat.Text
        Cells(i, 4).Value = at.Text
        Cells(i, 5).Value = mach.Text
        Cells(i, 9).Value = Format("Symptôme" & " : " & symp.Text)
        Cells(i, 8).Value = tech.Text
        Cells(i, 10).Value = Format("Diagnostic" & " : " & diag.Text)
        Cells(i, 11).Value = Format("Cause" & " : " & cause.Text)
        Cells(i, 12).Value = Format("Solution" & " : " & sol.Text)
        Cells(i, 13).Value = Format("Amélioration" & " : " & amelio.Text)
        Cells(i, 14).Value = inter1.Text
        Cells(i, 15).Value = heure1.Text
        Cells(i, 16).Value = inter2.Text
        Cells(i, 17).Value = heure2.Text
        Cells(i, 18).Value = inter3.Text
        Cells(i, 19).Value = heure3.Text
        Cells(i, 20).Value = inter4.Text
        Cells(i, 21).Value = heure4.Text
        Cells(i, 23).Value = Format(Val.Text & "   " & val2.Text)
    
    Unload Me
    Load Interventions
    Interventions.Show 0
    
    VerouillerFeuilles 'verouiller la feuille
    
    End If
    
    ThisWorkbook.Save
    
    End Sub
    
    Private Sub cause_Change()
    
    End Sub
    
    Private Sub inter_Change()
    
    If inter.Text = "Préventive" Then
    
        diag.Visible = False
        cause.Visible = False
        
        MsgBox ("Dans le champs symptôme, renseignez le NUMERO d'OT préventif")
        
    End If
    
    If inter.Text = "Aménagement" Or inter.Text = "Assistance production" Or inter.Text = "Corrective" Or inter.Text = "Sécurité - FSR" Then
    
        diag.Visible = True
        cause.Visible = True
        
    End If
    
    End Sub
    
    
    
    Private Sub inter4_Change()
    
    End Sub
    
    Private Sub Label23_Click()
    
    End Sub
    
    Private Sub Label24_Click()
    
    End Sub
    
    Private Sub Label46_Click()
    
    End Sub
    
    Private Sub mach_Change()
    
    End Sub
    
    Private Sub tech_Change()
    
    End Sub
    
    Private Sub UserForm_Activate()
    
    dat.Value = Date
    
    ThisWorkbook.Sheets("Suivi pannes machines").Activate
    
            i = 6
        
            While Cells(i, 1) <> ""
            i = i + 1
            
            'Sheets("Suivi pannes machines").Activate
            
            
            Wend
    y = i - 1
    
    num.Value = Cells(y, 1).Value + 1
    
    
    'Remplir combobox intervenants
    For a = 2 To Sheets("BD").Cells(Rows.Count, 1).End(xlUp).Row
    
        inter1.AddItem Sheets("BD").Cells(a, 1)
        inter2.AddItem Sheets("BD").Cells(a, 1)
        inter3.AddItem Sheets("BD").Cells(a, 1)
        inter4.AddItem Sheets("BD").Cells(a, 1)
    Next a
    
    'Remplir combobox technologie
    For b = 2 To Sheets("BD").Cells(Rows.Count, 2).End(xlUp).Row
    
        tech.AddItem Sheets("BD").Cells(b, 2)
        
    Next b
    
    'Remplir combobox technologie
    For c = 2 To Sheets("BD").Cells(Rows.Count, 3).End(xlUp).Row
    
        at.AddItem Sheets("BD").Cells(c, 3)
        
    Next c
    
    'Remplir combobox intervenants
    For D = 2 To Sheets("BD").Cells(Rows.Count, 4).End(xlUp).Row
    
        inter.AddItem Sheets("BD").Cells(D, 4)
        
    Next D
    
    'Remplir combobox Machine(Matricule)
    For h = 2 To Sheets("BD").Cells(Rows.Count, 5).End(xlUp).Row
    
         mach.AddItem Sheets("BD").Cells(h, 5)
         
    Next h
    
    'Remplir combobox validation
    For e = 2 To Sheets("BD").Cells(Rows.Count, 6).End(xlUp).Row
    
         Val.AddItem Sheets("BD").Cells(e, 6)
         
    Next e
    
    
    
    val2.Visible = False
    
    End Sub
    
    Private Sub Val_Change()
    
    If Val.Text = "SUPERVISEUR" Then
    
        val2.Visible = True
        
    End If
    
    End Sub
    
    Private Sub val2_Change()
    
    End Sub
    Images attachées Images attachées   

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : avril 2009
    Messages : 15 379
    Points : 12 711
    Points
    12 711
    Billets dans le blog
    8
    Par défaut re
    bonjour
    va tu manipuler cette liste déroulante avec ces évènement pas la suite?
    si c'est le cas il te faudra soit faire un module classe qui cva la gérer soit la Maper dans le UserForm

    c'est pas tout d'ajouter un control dans un UserForm, il faut pouvoir gérer ses évènements (click,change,etc...)

    et met ton code entre balise ca pique les yeux (le bouton #) dans l'éditeur de message )
    Nom : Capture.JPG
Affichages : 40
Taille : 23,4 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juillet 2019
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci patrick! je vais essayé de ne pas me gourer avec ce conseil.

  4. #4
    Membre émérite Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    mars 2007
    Messages
    1 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : mars 2007
    Messages : 1 228
    Points : 2 634
    Points
    2 634
    Par défaut
    Bonjour,
    Citation Envoyé par DG 025 Voir le message
    Merci patrick! je vais essayé de ne pas me gourer avec ce conseil.
    Tu pourrais rééditer ton premier post pour ajouter les balises de code #
    Cordialement,
    Patrice
    Personne ne peut détenir le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  5. #5
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    septembre 2003
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : septembre 2003
    Messages : 5 643
    Points : 12 777
    Points
    12 777
    Par défaut
    Bonjour,

    Citation Envoyé par patricktoulon Voir le message
    va tu manipuler cette liste déroulante avec ces évènement pas la suite?
    si c'est le cas il te faudra soit faire un module classe qui cva la gérer soit la Maper dans le UserForm
    Pour ma part je n'ai pas compris que le but est d'ajouter cette liste déroulante par VBA, mais de la remplir par VBA.

    Si c'est le cas, quel est le problème ?
    C'est la boucle while avec juste une incrémentation dedans ?

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : avril 2009
    Messages : 15 379
    Points : 12 711
    Points
    12 711
    Billets dans le blog
    8
    Par défaut re
    Bonjour Arkham

    je cite
    je rencontre une difficulté j'ai besoin de rajouter à un userform déjà existant une liste déroulante afin d'intégrer des information pour faciliter le remplissage d'un formulaire
    pour moi ca veut dire que la liste n'existe pas
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : avril 2009
    Messages : 15 379
    Points : 12 711
    Points
    12 711
    Billets dans le blog
    8
    Par défaut re
    re
    dans le cas ou effectivement on parle bien d'ajout dynamique de ComboBox
    un tout petit exemple comme ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private WithEvents ma_liste As MSForms.ComboBox
     
    Private Sub UserForm_Activate()
    Set ma_liste = Me.Controls.Add("Forms.ComBobox.1", "maliste", True)
    ma_liste.ColumnCount = 3
    Me.Controls("maliste").List = Sheets(1).Range("A2:C6").Value
    End Sub
    Private Sub ma_liste_Click()
    With ma_liste
    TextBox1.Value = .List(.ListIndex, 0)
    TextBox2.Value = .List(.ListIndex, 1)
    TextBox3.Value = .List(.ListIndex, 2)
    End With
    End Sub
    au départ la ComboBox n'existe pas je l'ajoute a l'activate de l'USF
    je la Map avec withevents lors de sa création dans le UserForm (pour un seul control pas besoins de module classe )
    Nom : Capture.JPG
Affichages : 31
Taille : 112,4 Ko

    demo
    Nom : demo3.gif
Affichages : 31
Taille : 185,3 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  8. #8
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    septembre 2003
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : septembre 2003
    Messages : 5 643
    Points : 12 777
    Points
    12 777
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    Bonjour Arkham

    je cite


    pour moi ca veut dire que la liste n'existe pas

    Mais rien ne dit qu'elle doit être créée en vba.
    La copie écran montre un textbox qu'il faut je pense remplacer par une combobox.

  9. #9
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : avril 2009
    Messages : 15 379
    Points : 12 711
    Points
    12 711
    Billets dans le blog
    8
    Par défaut re
    re
    peut être a tu raison attendons les retour du demandeur
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  10. #10
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    septembre 2003
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : septembre 2003
    Messages : 5 643
    Points : 12 777
    Points
    12 777
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    re
    peut être a tu raison attendons les retour du demandeur
    Moi j'attends, mais c'est jeudi soir.
    De mémoire le jeudi soir pour les étudiants c'est pas trop le soir des devoirs.

    @DG 45 : précise un peu le contexte, et explique bien ce que tu souhaites et ce que tu as essayé.
    Sinon on va répondre à côté.

  11. #11
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juillet 2019
    Messages : 4
    Points : 3
    Points
    3
    Par défaut .
    Bonjour à tous vraiment je suis heureux de savoir que les problèmes posés suscitent de l’intérêt! Le fait c'est que les userforms existent déjà mais pour le <<machine (matricule)>> de mon formulaire je veux y rattacher un bouton de défilement et une liste contenant les informations que je veux faire dérouler notamment ceux contenu dans la liste (Machine matricule sur le tableau excel) c'est ça que je n'arrive pas à faire correctement, modifié le programme existant et contenant le code de tous les userforms existant et inserer le bout de code nécessaire pour que ça marche.

  12. #12
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    septembre 2003
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : septembre 2003
    Messages : 5 643
    Points : 12 777
    Points
    12 777
    Par défaut
    Bonjour,

    Ce qu'il y a sous le commentaire 'Remplir combobox Machine(Matricule), c'est ça qui a été ajouté ?
    Sur la copie écran, la zone ressemble à une textBox.
    Il faut la remplacer par une comboBox (zone de liste modifiable) dans la boîte à outil.
    Pour cela il faut supprimer l'ancienne zone et créer la nouvelle avec le bon type de contrôle.
    Puis renommer la zone de liste créée pour lui donner le nom de l'ancienne zone (apparemment "mach").

  13. #13
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juillet 2019
    Messages : 4
    Points : 3
    Points
    3
    Par défaut .
    Bonjour désolé pour le retard et merci à tous pour les solutions! beau forum!

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 26/04/2014, 14h52
  2. [XL-2010] Userform : Afficher Image en fonction d'une liste Déroulante
    Par morpheus54400 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/04/2013, 14h34
  3. Réponses: 4
    Dernier message: 03/02/2011, 14h59
  4. Réponses: 4
    Dernier message: 09/08/2006, 10h41
  5. Rajouter "Tous" dans une Liste Déroulante
    Par smirold dans le forum IHM
    Réponses: 7
    Dernier message: 25/10/2004, 13h29

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