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 :

Code pour userform [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2014
    Messages : 19
    Par défaut Code pour userform
    Bonjour,

    Je suis en train de crée un fichier avec une inputbox et une userform. Je suis vraiment débutant dans ce domaine de macro et de VBA mais j'ai quand même réussit à effectuer quelque manipulation grâce aux codes que j'avais sur internet.
    Je vous explique mon projet. Cependant pour des raison de confidentialité je vais utiliser des titres bidons.

    J'ai crée une userbox avec une liste déroulante modifiable et trois checkbox à coter. La liste déroulante est automatiquement remplit grace a un lien avec des cellules. Admettons que dans ma liste déroulante il y ai 10 noms de pommes.
    Je veut que lorsque je clic par exemple sur la pomme 1 dans la liste, je puisse cocher, si elle est verte et/ou si elle est rouge et/ou si elle bleu mais que pour la pomme 2 les cases reviennent viergent pour que je puisse les remplir. J'aimerai aussi que pour chaque pomme, mes choix avec les checkbox soit sauvergarder.

    Enfin je voudrais pouvoir enregistrer ma userbox pour que lorsqu'un autre utilisateur qui ouvre le fichier excel, il puisse visualiser ma userbox et si il souhaite, la modifier.

    Voila le code que j'ai pour l'instant.

    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
    Private Sub UserForm1_Initialize()
    Dim i
        For i = 1 To 10
            ComboBox1.AddItem Sheets("Feuil1").Cells(i, 1)
        Next
    End Sub
     
    Private Sub ComboBox1_Change()
     
     [A1] = UserForm1.ComboBox1
     
     
    End Sub
    Private Sub Verte_Click()
     
    End Sub
     
    Private Sub Rouge_Click()
     
    End Sub
    Private Sub Bleu_Click()
     
    End Sub
     
    Private Sub Valider_Click()
    UserForm1.Hide
    End Sub
    Merci beaucoup pour votre aide.

  2. #2
    Membre émérite Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Par défaut
    Bonjour

    Voici de quoi passer le temps
    Je mets en fichier joints par gain de temps.
    Fichiers attachés Fichiers attachés

  3. #3
    Membre expérimenté Avatar de lucasgaetan
    Homme Profil pro
    dessinateur BE
    Inscrit en
    Août 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : dessinateur BE
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 175
    Par défaut
    Bonjour Baptiste
    Je veut que lorsque je clic par exemple sur la pomme 1 dans la liste, je puisse cocher, si elle est verte et/ou si elle est rouge et/ou si elle bleu
    pour cela je te conseille de mettre des bouton d'option (OptionButton un rond à "cocher") dans un cadre (ou Frame) --> si tu coche l'option 1 l'autre se decoche

    mais que pour la pomme 2 les cases reviennent viergent
    il faut donc réinitialisé tes bouton d'option lorsque tu modifie ton choi liste déroulante (dans l'exemple "ComboBox1")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub ComboBox1_Change()
    OptionButton1.Value = False
    OptionButton2.Value = False
    OptionButton3.Value = False
    .......
    End Sub
    ---> je ne te prend pas la tète avec le scan des objets dans une UserFormes (For Each Object in me ....)

    Citation Envoyé par Baptiste3687 Voir le message
    J'aimerai aussi que pour chaque pomme, mes choix avec les checkbox soit sauvergarder.
    pour cela, il faut te créer une base de données (dans une feuille de ton classeur par exemple "Feuil3")
    ligne 1 = pomme 1 avec colonne A nom de la pomme colonne B couleur de la pomme
    ligne 2 = pomme 2 avec colonne A nom de la pomme colonne B couleur de la pomme
    ....
    et un bouton sauvegarder (CommandButton1 pour l'exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub CommandButton1_Click()
        Select Case ComboBox1.Value
            Case "pomme 1"
                Sheet("Feuil3").Range("A1").Value = ComboBox1.Value
                Sheet("Feuil3").Range("B1").Value = OptionButton1.Caption
            Case "pomme 2"
                Sheet("Feuil3").Range("A2").Value = ComboBox1.Value
                Sheet("Feuil3").Range("B2").Value = OptionButton1.Caption
            'ect.......
        End Select
    End Sub
    --> idem je te laisse gérer les boucle suivant ton niveau en vba

    Enfin je voudrais pouvoir enregistrer ma userbox pour que lorsqu'un autre utilisateur qui ouvre le fichier excel, il puisse visualiser ma userbox et si il souhaite, la modifier.
    Je prends ca pour "je veux pouvoir lire se que j'ai enregistré"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub ComboBox1_Change()
    'Mettre à la suite du code précedent : OptionButton1.Value = False .......
        Select Case ComboBox1.Value
            Case "pomme 1"
                 OptionButton1.Caption = Sheet("Feuil3").Range("B1").Value
            Case "pomme 2"
                 OptionButton2.Caption = Sheet("Feuil3").Range("B1").Value
            'ect.......
        End Select
    End Sub
    --> ce code ne marche pas, il faut que tu t’intéresse au scan des objets dans une UserFormes sinon ça devient vraiment compliquer
    AUTREMENT tu trouve un code à toi

    bon courage.
    ceci n'ai pas ta solution, je n'ai fait que te donner que des pistes, à toi de les explorer

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2014
    Messages : 19
    Par défaut
    Bonsoir,

    Désolé d'avoir mis du temps à vous répondre mais je n'ai pas trop eu le temps ces derniers temps à cause de mes études.

    Je tient déjà à vous remercier pour le temps que vous avez consacrez pour me répondre. Cependant j'arrive pas a remplir ma listbox a partir de données présentes dans plusieurs cellules d'une seule colonne. Ensuite la méthode de keygen08 me convient bien. Mais je n'arrive pas à la rentrer dans ma feuille. Rien ne se passe. Si vous pouviez m'aidez pas à pas, car étant débutant dans la VBA, je ne comprend pas grand chose.

    Merci beaucoup.

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Un code assez simple. Les valeurs sont stockées dans la colonne B de B1 à B4 et la plage de la combobox en colonne A de A1 à A... :
    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
     
    Private Sub UserForm_Initialize()
     
        With Worksheets("Feuil1")
     
             ComboBox1.RowSource = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)).Address
     
        End With
     
        ComboBox1.Text = Range("B1").Value
     
        'si des valeurs ont été mémorisées dans un choix précédant
        If Range("B2").Value <> "" Then
     
            Verte.Value = Range("B2").Value
            Rouge.Value = Range("B3").Value
            Bleu.Value = Range("B4").Value
     
        End If
     
    End Sub
     
    Private Sub ComboBox1_Click()
     
        Verte.Value = 0
        Rouge.Value = 0
        Bleu.Value = 0
     
    End Sub
     
    Private Sub Valider_Click()
     
        'sauvegarde en colonne B
        Range("B1").Value = ComboBox1.Text
        Range("B2").Value = CInt(Verte.Value)
        Range("B3").Value = CInt(Rouge.Value)
        Range("B4").Value = CInt(Bleu.Value)
     
        Unload Me
     
    End Sub
    Hervé.

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2014
    Messages : 19
    Par défaut
    Bonjour,

    Merci Hervé pour ton aide. J'ai tout arrivé à faire, sauf que quand je coche les checkbox, les cases ne se remplissent pas en marquant la couleur de la pomme pour sauvegarder mon choix comme me l'as montrer keygen08.

    Merci

  7. #7
    Membre émérite Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Par défaut
    Bonsoir
    Tu nous en dirais un peu plus, on pourrai peut etre aider.
    Nous ne sommes pas des devins.
    Quel solution a tu retenu, quel code a tu developpé, ou sont tes donné sur ta feuille.
    Tes couleur sont t-elle concatener comme dans l'ex que je t'ai donné ou bien chacun sa colonne.
    As tu cherché comment je faisais pour faire la meme chose.
    Aider oui, mais on ne peut faire a ta place un projet dont tu est le seul a connaitre les tenants et abouttisants.

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

Discussions similaires

  1. Userform code pour liste deroulante
    Par josedelavega dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 29/04/2014, 16h27
  2. [XL-2007] code pour un Userform
    Par mobiclick dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/10/2010, 20h42
  3. code pour fermer un userform?
    Par jffaber dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/04/2010, 13h53
  4. Réponses: 2
    Dernier message: 01/04/2003, 22h09
  5. code pour interbase 6.0 et 6.5 de generateur
    Par tripper.dim dans le forum InterBase
    Réponses: 4
    Dernier message: 01/07/2002, 11h29

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