[VBA] Liste déroulante dépendante d'une autre

  • Initiateur de la discussion Initiateur de la discussion Pata
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Pata

XLDnaute Nouveau
Bonjour,

Voilà mon problème. J'ai une première liste déroulante: liste_deroulante1 dans laquelle je sélectionne un mois de l'année et qui fait référence à une feuille de classeur du m^me nom que le mois. Une fois avoir sélectionné le mois dans la liste1 je voudrais avoir dans ma seconde liste déroulante: Liste_deroulante2 tout le contenue des cellules non vide de la collone D de la feuille choisie avec la première liste déroulante.

J'ai écris ceci:

Private Sub Liste_deroulante1_Change()

'Recherche du mois dans la liste déroulante
Dim b As Integer
b = Liste_deroulante1.Value

'Recherche de la dernière ligne non vide dans la feuille du bon mois, la première ligne de chaque feuille est occupé par des mots.
Dim derniere As Integer
If Sheets(b).Range("A2").Value = "" Then
derniere = 2
Else: derniere = Sheets(b).Range("A1").End(xlDown).Row
End If

'Données de la liste Liste_deroulante2
If derniere = 2 Then
Liste_deroulante2.RowSource = Sheets(b).Range("D2")
Else: Liste_deroulante2.List = Sheets(b).Range("D2😀" & derniere).Value
End If

End Sub


J'ai toujours un bug qui apparaît de façon aléatoirement quand je change de mois quand la première liste déroulante.



Cordialement.

Pata
 
Re : [VBA] Liste déroulante dépendante d'une autre

Bonjour,

Voilà mon fichier. Tout se passe dans la UserForm Trésorerie. J'avais un peu simplifié les noms au début. La première liste déroulante s'appelle LD_Trésorerie_mois et la seconde LB_Trésorerie_mois. Au niveau de la colonne D j'ai écris n'importe quoi c'est juste pour faire des tests.


Merci.
 

Pièces jointes

Re : [VBA] Liste déroulante dépendante d'une autre

Re Bonjour,

En l'absence de Regueiro, ci-après un nouveau code qui fonctionne :
Code:
Private Sub LD_Trésorerie_mois_Change()
Dim B As String
Dim Derniere As Long
B = LD_Trésorerie_mois.Value
With Sheets(B)
    Derniere = .Range("A2").End(xlDown).Row
    LB_Trésorerie_mois.List() = .Range("D2:D" & Derniere).Value
End With
End Sub
Il faut aussi que les noms de mois de la feuille Variable soient identiques à ceux des onglets (erreurs sur Juillet et Août)

A+ Jack2
 
Re : [VBA] Liste déroulante dépendante d'une autre

Bonsoir
Voilà ton fichier en PJ
Si j'ai bien compris :
Code:
Private Sub UserForm_Initialize()
Me.LD_Trésorerie_mois.List = [ListeMois].Value
End Sub
Code:
Private Sub LD_Trésorerie_mois_Change()
    i = 0
    Me.LB_Trésorerie_mois.Clear
   f = LD_Trésorerie_mois.Value
   For Each c In Range(Sheets(f).[D2], Sheets(f).[D65000].End(xlUp))
        With Me.LB_Trésorerie_mois
        .ColumnCount = 3
        .AddItem
        .List(i, 0) = c.Offset(0, -2).Value
        .List(i, 1) = c.Offset(0, -1).Value
        .List(i, 2) = c.Value
        i = i + 1
        End With
   Next c
 End Sub
A adapter
A+
 

Pièces jointes

Re : [VBA] Liste déroulante dépendante d'une autre

Bonsoir,

C'est ce que je voulais merci beaucoup. J'ai adapté pour n'avoir que la colonne D d'affiché dans la liste. Il y a avait une petite erreur de ma part, à cause d'une faute de frappe sur le mois d'aout j'avais un bug quand on sélectionnait ce mois.

Encore merci.

Pata
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
252
Réponses
4
Affichages
151
Réponses
4
Affichages
363
Réponses
10
Affichages
487
Retour