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 :

VBA - USERFORM à choix multiples


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 64
    Par défaut VBA - USERFORM à choix multiples
    Bonjour,

    Etant débutant dans tout ce qui concerne les USERFORM, je viens vers vous pour savoir si quelqu'un dispose d'un code bateau que je pourrai par la suite modifier.

    J'aimerais une userform me proposant de choisir entre 1 et 2.
    1 et 2 proposées en partie gauche du userform.


    Si je clique sur 1, ça me propose de choisir entre A, B et C dans la partie droite du userform (1 et 2 restent visibles, de telle sorte que je peux à tout moment cliquer sur 2 si mon premier choix est 1, et vice versa)
    Et si en fait je décide de cliquer sur 2 après coup, ça me propose D et E dans la partie droite.

    Dès que j’ai cliqué sur un chiffre et une lettre associée, je peux valider (auquel cas ça m’enregistre dans 2 variables le chiffre et la lettre sélectionnées) avant de fermer le userform
    Dans le cas contraire ça me dit « veuillez choisir une conf ».

    De même qu'à tout moment je peux annuler, auquel cas pas de buggue et la macro s'arrête.


    Voilà, j'espère que c'est assez clair et suffisamment facile, en m'excusant de ne pas avoir d'ébauche à proposer...

  2. #2
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut
    Bonjour,

    Il existe de multiples solutions mais il serait plus aisé de t'aider si tu montrais ton formulaire et, plus particulièrement le type d'objet à cliquer qui contiennent 1, 2, A, B, C, D.

    Chacune de ces données pourraient être dans des Label mais pour 1 et 2, on pourrait également opter pour un bouton d'option.

    A toi de voir

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 64
    Par défaut
    hmm je ne suis pas sûr de bien comprendre ce que tu demandes, je tente le coup

    Je n'ai pas de formulaire pour le moment, d'où mes excuses en fin du 1er message...

    1,2, A,...E seraient en fait des string, et lorsque, disons, la conf 1-B serait choisie et validée, alors les variables 'chiffre' et 'lettre' enregistreraient 1 et B.

    Concernant l'apparence, elle serait basique, comme le montre l'image en PJ...

    Je ne sais pas si je t'ai éclairé...
    Images attachées Images attachées  

  4. #4
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut
    Il te faut commencer par créer le formulaire.

    Onglet développeur,
    Visual Basic/Insertion/UserForm

    Un formulaire vierge s'affiche. Il suffit de placer les objets voulus à partir de la boite à outils

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 64
    Par défaut
    alors voilà ce que ça donne, bon bien sûr, l'histoire des fonctions IF (ligne 14 à 27), ça ne marche pas, mais c'est quelque chose dans le genre que je souhaiterai obtenir

    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
     
    Option Explicit
    Dim Chiffre, Lettre As String
     
    Private Sub userform_initialize()
    USF.Height = 150
    USF.Width = 400
     
    With USF.ComboBox1
    .AddItem "1"
    .AddItem "2"
    End With
     
    If ComboBox1.Value = "1" Then
    With USF.ComboBox2
    .AddItem "A"
    .AddItem "B"
    .AddItem "C"
    End With
    End If
     
    If ComboBox1.Value = "2" Then
    With USF.ComboBox2
    .AddItem "D"
    .AddItem "E"
    End With
    End If
     
    End Sub
     
     
    Sub lancer_userform()
        USF.Show
    End Sub
     
    Private Sub CommandButton_valider_Click()
    Chiffre = ComboBox1.Value
    Lettre = ComboBox2.Value
    Unload USF
     
    End Sub

    J'ai mis des combobox au final car ça me semble plus propre... je me trompe peut-être

    Avec comme fonctionnalités:
    • Dans l'idéal, si j'ai choisi 1-A, puis finalement que je choisis 2, il faudrait que la 2° combobox se mette à "", histoire d'éviter des combinaisons impossible du genre 2-A (Combobox 1 étant la forme de gauche, 2 de droite)
    • Les variables Chiffre et lettre doivent elles être déclarées comme 'public' et non 'Dim' pour être ici lues par un module?
    Images attachées Images attachées  

  6. #6
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut
    Les variables Chiffre et lettre doivent elles être déclarées comme 'public' et non 'Dim' pour être ici lues par un module?
    Non, de ton module, tu tapes UserForm1. et la liste des composants de ton formulaire sera affichée pour te permettre de les invoquer.

    Envoies une copie de ton fichier quand tu seras bloqué et que tu estimeras un coup de pouce nécessaire

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

Discussions similaires

  1. UserForm à choix multiples
    Par babybell dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/09/2008, 08h55
  2. [VBA-E]Liste a choix multiple ?
    Par Vince_93700 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 17/04/2007, 16h58
  3. Réponses: 3
    Dernier message: 15/03/2006, 12h39
  4. pb de select avec size avec choix multiple
    Par La_picolle dans le forum ASP
    Réponses: 10
    Dernier message: 28/08/2003, 15h21
  5. formulaire choix multiple
    Par pram dans le forum XMLRAD
    Réponses: 6
    Dernier message: 02/02/2003, 18h59

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