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 :

Aide pour la création d'un formulaire avec listes évolutives


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    MK
    Inscrit en
    Décembre 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : MK
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Aide pour la création d'un formulaire avec listes évolutives
    Bonsoir à tous,
    Tout nouveau sur ce forum et ayant très peu d'expérience concernant excel je suis à la recherche d'une aide concernant la création d'un formulaire pour enregistrer des données pour par la suite en faire des statistiques (pour un tournoi)!
    Sur le fichier excel j'ai 2 onglets, le premier correspond à des données quasi fixes rentrées à la main (les équipes (formées de 5 à 7 joueurs) qui sont rangées par division (une petite dizaine). Il y a entre 8 et 10 équipes par division (environ 60équipes en tout et un peu plus de 400joueurs).
    Au cours du tournoi je souhaiterai enregistrer différentes données concernant chaque joueur, j'ai créé un formulaire avec plusieurs combobox (la premiere pour le choix de division, la seconde pour le choix d'équipe, la dernière pour le choix du joueur, une case à cocher (pour la victoire/défaite) et des textbox pour rentrer des chiffres.

    J'aurai voulu qu'au fur et à mesure que je remplis le formulaire, les listes déroulantes des combobox se mettent à jour, c'est à dire qu'elles me proposent que les choix adaptés : je choisis dans un premier temps la division 1, je voudrais ne voir apparaitre que les équipes de division 1 dans la combobox équipe. De même pour les joueurs.
    J'imagine qu'il y a bien un code vba pour ça, même différents codes vba...
    Je ne sais pas quelle formule utiliser pour indiquer à chaque combobox où aller chercher les valeurs à proposer, et comment restreindre les valeurs en fonction des choix précédents.

    Je me permets d'ajouter la pièce jointe du fichier correspondant, ce sera sans doute plus compréhensible, mais je ne demande pas à ce quelqu'un fasse ça à ma place mais plutôt à m'expliquer ou me renvoyer vers un lien explicatif pour le vba.
    Je n'ai pas encore finaliser le code pour les boutons, ni pour la case à cocher et les textbox, c'est ce qui me semble le moins compliqué (il y a une macro pour le lancement du formulaire sur la page stats).

    Merci d'avance de votre lecture et de votre aide.
    Très bonne soirée
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Bonjour,

    Tu devrais trouver les réponses ici :
    http://boisgontierjacques.free.fr/pa...irecascade.htm
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

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

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    MK
    Inscrit en
    Décembre 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : MK
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci Patrice ! J'ai en effet trouvé ce dont j'avais besoin pour les listes en cascade, j'ai maintenant ç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
    Dim f
    Private Sub UserForm_Initialize()
          Set f = Sheets("BDD")
          Set d1 = CreateObject("Scripting.Dictionary")
          For Each c In f.Range("A2:A" & f.[A65000].End(xlUp).Row)
           If c <> "" Then d1(c.Value) = ""
          Next c
          Me.ComboBox1.List = d1.keys
    End Sub
    Private Sub ComboBox1_click()
           Set d1 = CreateObject("Scripting.Dictionary")
           For Each c In f.Range("B2:B" & f.[A65000].End(xlUp).Row)
             tmp = c.Offset(0, -1): If tmp = "" Then tmp = c.Offset(0, -1).End(xlUp)
             If tmp = Me.ComboBox1 Then If c <> "" Then d1(c.Value) = ""
           Next c
           If d1.Count > 0 Then Me.ComboBox2.List = d1.keys
    End Sub
    Private Sub ComboBox2_click()
           Set d1 = CreateObject("Scripting.Dictionary")
           For Each c In f.Range("C2:C" & f.[A65000].End(xlUp).Row)
             tmp = c.Offset(0, -2): If tmp = "" Then tmp = c.Offset(0, -2).End(xlUp)
             tmp2 = c.Offset(0, -1):  If tmp2 = "" Then tmp2 = c.Offset(0, -1).End(xlUp)
             If c <> "" Then
               If tmp = Me.ComboBox1 And tmp2 = Me.ComboBox2 Then d1(c.Value) = ""
             End If
            Next c
            If d1.Count > 0 Then Me.ComboBox3.List = d1.keys
    End Sub
    Private Sub ComboBox3_click()
           Set d1 = CreateObject("Scripting.Dictionary")
           For Each c In f.Range("D2:D" & f.[A65000].End(xlUp).Row)
            If c <> "" Then
             tmp = c.Offset(0, -3): If tmp = "" Then tmp = c.Offset(0, -3).End(xlUp)
             tmp2 = c.Offset(0, -2):  If tmp2 = "" Then tmp2 = c.Offset(0, -2).End(xlUp)
             tmp3 = c.Offset(0, -1):  If tmp3 = "" Then tmp3 = c.Offset(0, -1).End(xlUp)
             If tmp = Me.ComboBox1 And tmp2 = Me.ComboBox2 And tmp3 = Me.ComboBox3 Then d1(c.Value) = ""
            End If
           Next c
           If d1.Count > 0 Then Me.ComboBox4.List = d1.keys
    End Sub
    Mais c'est triste à dire, je coince à partir de là...
    Je me suis inspiré de ce post pour le formulaire ( https://www.developpez.net/forums/d1...-d-formulaire/ ) mais je n'arrive pas à utiliser le code vba de celui-ci : je fais un copier coller sûrement trop violent et il doit y avoir un conflit mais vu que je ne comprends pas grand chose je ne peux pas trop voir ce que je dois modifier...
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [XL-2007] Demande d'aide pour la création d'un Organigramme/ Treeview avec conditions
    Par syl2071 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 03/01/2017, 09h13
  2. [XML] Aide pour la création de document xml avec php
    Par yassin123441 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 02/03/2013, 18h07
  3. Réponses: 2
    Dernier message: 10/03/2006, 13h55
  4. Aide pour un alignement dans un formulaire
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 16/08/2005, 14h13
  5. [Oracle] Aide pour la création d'un trigger
    Par Sonic dans le forum Administration
    Réponses: 14
    Dernier message: 04/11/2004, 19h54

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