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-E]Comportement de liste deroulante en cascade


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 93
    Points : 47
    Points
    47
    Par défaut [VBA-E]Comportement de liste deroulante en cascade
    Bonjour,

    Voici un apercu de ma feuille Excel:



    En fait en selectionnant un "Sub-PT" les differentes lignes sur ma droite se mettent a jour automatiquement.
    Toutes les donnes son stockees dans une autres feuilles (directement extrait de ma base de donnees). Dans cette autre feuille j'ai 6 colonnes qui correspondent aux 6 champs present sur mon rapport.
    En selectionnant un sub-pt, ma premiere liste deroulante se met aussi a jour.
    Des que je clique une fois sur une de mes Sub-PT, la liste des elements de la liste sub-PT double. Si j'ai 5 elements, la liste passe a 10 elements. Si je clique encore une fois la liste passe de 10 a 15 et ainsi de suite. Evidement j'ai des doublons puisque les 5 sub-pt reels sont copie a chaque fois.

    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub cbxWPList_DropButtonClick()
     
     
        Dim i As Integer
        i = 1
        Do While Sheets("SubPTList").Cells(i, 1) <> ""
     
                cbxWPList.AddItem Sheets("SubPTList").Cells(i, 1)
     
            i = i + 1
        Loop
     
    End Sub

    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
    Private Sub cbxWPList_Click()
     
        Dim i As Integer
        i = 1
     
        Do While ThisWorkbook.Sheets("SubPTList").Cells(i, 1).Value <> cbxWPList.Value
     
           If ThisWorkbook.Sheets("SubPTList").Cells(i, 1) = "" Then
                Exit Sub
            Else
            i = i + 1
           End If
        Loop
     
     
        ThisWorkbook.Sheets("PostBCReport").Range("H4").Value = ThisWorkbook.Sheets("SubPTList").Range("B" & i).Value
        ThisWorkbook.Sheets("PostBCReport").cbxCAList.Value = ThisWorkbook.Sheets("SubPTList").Range("C" & i).Value
        ThisWorkbook.Sheets("PostBCReport").Range("H7").Value = ThisWorkbook.Sheets("SubPTList").Range("D" & i).Value
        ThisWorkbook.Sheets("PostBCReport").Range("H5").Value = ThisWorkbook.Sheets("SubPTList").Range("E" & i).Value
        ThisWorkbook.Sheets("PostBCReport").Range("H6").Value = ThisWorkbook.Sheets("SubPTList").Range("F" & i).Value
     
    End Sub
    Est-ce que vous auriez une idee?

  2. #2
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 72
    Points : 78
    Points
    78
    Par défaut
    Et si tu effaces les anciens avnt d ecrire les nouveaux?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 93
    Points : 47
    Points
    47
    Par défaut
    Ok je viens de le faire en rajoutant

    )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub cbxSubPTList_DropButtonClick()
     
        cbxSubPTList.Clear
    Mais le probleme maintenant c'est que lorsque je selectionne mon sub-pt, tout les champs se remplisse correctement sauf ma liste deroulante subpt qui reste vide. Elle devrait contenir l'element selectionne...

    Je rajoute le code suivant mais ca ne change rien. Ma cellule (Ai) contient la subpt selectionne.
    Je met une MsgBox pour voir le contenu et la ca marche. J'ai ma valeur dans la MasBox et la valeur dans ma liste???!!! Comme si elle avait besoin d'une sorte de tempo..??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ThisWorkbook.Sheets("PostBCReport").cbxSubPTList.Value = ThisWorkbook.Sheets("SubPTList").Range("A" & i).Value
        'MsgBox (ThisWorkbook.Sheets("SubPTList").Range("A" & i).Value
    Une idee?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 93
    Points : 47
    Points
    47
    Par défaut
    Personne n'a une petite idee. Je ne comprend pas pourquoi cette liste deroulante reste vide apres la selection d'un element!

    Est-ce qu'il existe une option qui permette cela, un simple rafraichissement? Je ne trouve pas

    A mon avis le combobox.clear doit y etre pour quelque chose car quand je l'enleve ca marche...comprend pas!

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

Discussions similaires

  1. [XL-2007] Liste Deroulante en cascade selon liste d'une autre feuille
    Par Audeo dans le forum Excel
    Réponses: 4
    Dernier message: 25/09/2014, 08h59
  2. Listes deroulantes en cascade
    Par JEYBY dans le forum Excel
    Réponses: 2
    Dernier message: 17/11/2013, 16h10
  3. liste deroulante en cascade
    Par dalo02 dans le forum Excel
    Réponses: 4
    Dernier message: 15/12/2011, 10h34
  4. [Débutant] Création de menu comportant des listes deroulantes
    Par diapa dans le forum C++Builder
    Réponses: 3
    Dernier message: 24/07/2010, 17h11
  5. liste deroulante en cascade
    Par padawanette dans le forum InfoPath
    Réponses: 3
    Dernier message: 26/08/2008, 09h56

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