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

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:D" & 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
 

Pata

XLDnaute Nouveau
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

  • VBA_BordesClément.xlsm
    43.6 KB · Affichages: 115

Jack2

XLDnaute Occasionnel
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
 

Regueiro

XLDnaute Impliqué
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

  • XLD_dune-autre-vba_bordesclement.xlsm
    38.7 KB · Affichages: 171

Pata

XLDnaute Nouveau
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:

Discussions similaires

Réponses
8
Affichages
248

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz