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 :

Menu déroulant 4 cascades VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2019
    Messages : 3
    Par défaut Menu déroulant 4 cascades VBA
    Bonjour,

    Tout d'abord bonne année et bonne santé à tous.
    Je ne connais pas VBA mais fais des recherches sur différents forum pour trouver des idées, et j'ai trouvé un petit bout de programme qui me convient plutôt bien mais impossible de le mettre à ma "sauce".
    dès que je veux modifier les choix des menus déroulants, ceux ci se retrouve vide dans mon menu déroulant. de plus le programme écrit dans les 4 premières colonnes de la feuilles excel et je souhaiterai décalé l'écriture de 2 colonnes. comment faire ?

    Merci pour votre aide.

    Julien

    voici un extrait du programme:

    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
    Dim f, a()
    Private Sub UserForm_Initialize()
      Set f = Sheets("BD")
      For i = 1 To 4: Me("label" & i) = f.Cells(1, i): Next i
      Set mondico = CreateObject("Scripting.Dictionary")
      a = f.Range("A2:E" & f.[A65000].End(xlUp).Row).Value
      For i = LBound(a, 1) To UBound(a, 1)
        mondico(a(i, 1)) = ""
      Next i
      Me.ComboBox1.List = mondico.keys
    End Sub
     
    Private Sub ComboBox1_click()
      Me.ComboBox2.Clear
      Me.ComboBox3.Clear
      Me.ComboBox4.Clear
      Set mondico = CreateObject("Scripting.Dictionary")
      For i = LBound(a, 1) To UBound(a, 1)
         If a(i, 1) = Me.ComboBox1 Then mondico(a(i, 2)) = ""
      Next i
      Me.ComboBox2.List = mondico.keys
    End Sub

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Bonjour,

    Exemple de menus cascade 4 niveaux en PJ

    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
     
    Dim f, BD(), ColcléCombo(), ColClé1, ColClé2, ColClé3, ColClé4
    Private Sub UserForm_Initialize()
      ColcléCombo = Array(1, 2, 3, 4, 5)                                                ' colonnes des combobox( à adapter)
      Set f = Sheets("BD")
      Set d1 = CreateObject("Scripting.Dictionary")
      BD = f.Range("A2:E" & f.[A65000].End(xlUp).Row).Value      ' Array pour rapidité (à adapter)
      ColClé1 = ColcléCombo(0)
      For i = LBound(BD) To UBound(BD): d1(BD(i, ColClé1)) = "": Next
      Me.ComboBox1.List = d1.keys
    End Sub
     
    Private Sub ComboBox1_click()
      Me.ComboBox2.Clear
      Me.ComboBox3.Clear
      Me.ComboBox4.Clear
      ColClé2 = ColcléCombo(1)
      Set d1 = CreateObject("Scripting.Dictionary")
      For i = LBound(BD) To UBound(BD)
         If BD(i, ColClé1) = Me.ComboBox1 Then d1(BD(i, ColClé2)) = ""
      Next i
      Me.ComboBox2.List = d1.keys
    End Sub
     
    Private Sub ComboBox2_click()
      Me.ComboBox3.Clear
      Me.ComboBox4.Clear
      ColClé3 = ColcléCombo(2)
      Set d1 = CreateObject("Scripting.Dictionary")
      For i = LBound(BD) To UBound(BD)
         If BD(i, ColClé1) = Me.ComboBox1 And BD(i, ColClé2) = Me.ComboBox2 Then d1(BD(i, ColClé3)) = ""
      Next i
      Me.ComboBox3.List = d1.keys
    End Sub
     
    Private Sub ComboBox3_click()
      Me.ComboBox4.Clear
      ColClé4 = ColcléCombo(3)
      Set d1 = CreateObject("Scripting.Dictionary")
      For i = LBound(BD, 1) To UBound(BD, 1)
        If BD(i, ColClé1) = Me.ComboBox1 And BD(i, ColClé2) = Me.ComboBox2 _
            And BD(i, ColClé3) = Me.ComboBox3 Then d1(BD(i, ColClé4)) = ""
      Next i
      Me.ComboBox4.List = d1.keys
    End Sub
     
    Private Sub ComboBox4_click()
      For i = LBound(BD) To UBound(BD)
        If BD(i, ColClé1) = Me.ComboBox1 And BD(i, ColClé2) = Me.ComboBox2 _
            And BD(i, ColClé3) = Me.ComboBox3 And BD(i, ColClé3) = Me.ComboBox3 Then
            Me.TextBox1 = BD(i, ColcléCombo(4))
        End If
      Next i
    End Sub

    Boisgontier
    Fichiers attachés Fichiers attachés

  3. #3
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2019
    Messages : 3
    Par défaut
    Bonjour Boisgontier,

    Le document excel que j'ai pris en référence est un des tiens. je m'en étais inspiré il y a quelques années déjà dans une autre entreprise mais en version plus simple.
    Là je me suis servis de celui qui se nomme: "Form4niveauxRayonTypeCatéArticle".
    J'aime bien le principe de cliquez dans la cellule voulu est de remplir plusieurs cellule. Le problème principale que j'ai c'est que quand je remplace les noms que tu avais mis (beurre, crème...) par ceux que j'ai besoin il ne me propose plus rien dans les menus déroulant de la fenêtre popup. je pense que ça vient de la partie du programme (mondico).
    le but de mon fichier est de remplir des lignes d'un tableur excel en fonction de ce qui a été choisi via la fenêtre popup.

    merci pour ton aide,

    Julien

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Bonjour,

    Je suppose qu'il s'agit de ce pgm.

    Boisgontier
    Fichiers attachés Fichiers attachés

  5. #5
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2019
    Messages : 3
    Par défaut
    Bonjour
    Oui il s’agit bien de se fichier.
    Lorsque je vais dans l’onglet BD est que je remplace par les informations je n’ai plus rien dans les menu déroulants.
    De plus je voudrais Ajouter des menu mais je ne comprends pas pourquoi je ne peux pas créer de nouveau menu, case dans useform.
    Merci pour ton aide.
    Julien

Discussions similaires

  1. Besoin d'aide pour menu déroulant en cascade
    Par kenjytonda dans le forum Word
    Réponses: 1
    Dernier message: 23/02/2016, 12h53
  2. [XL-2010] Pb avec menu déroulant en cascade dans un userform
    Par Scrabblouille dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 07/02/2016, 22h21
  3. [XL-2003] Menu déroulant généré avec vba pour XL-2003
    Par secotine dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/01/2012, 09h33
  4. [VBA-E]{débutant} Importation de données avec menu déroulant
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 27/04/2007, 17h02
  5. Menu déroulant vertical en cascade vertical
    Par Ania dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 28/08/2006, 17h46

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