Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Validation en cascade sur listes avec trous

dionys0s

XLDnaute Impliqué
Bonsoir le forum

j'ai un petit soucis à régler
J'ai un plan comptable général dans une feuille, et une liste des opérations dans une autre.

J'aimerais, par ligne, faire des listes en cascade qui se mettent à jour automatiquement (par VBA donc je suppose) pour saisir les opérations et les comptes associés.

C'est à dire que je sélectionne un intitulé en A2 (les comptes de classe 2 par exemple), puis en B2, il me propose la liste des comptes de classe 2 du rang inférieur, et ainsi de suite sur 6 rangs de classification (jusqu'en colonne F donc).

J'ai essayé sans VBA avec le gestionnaire de noms et les listes de validation sans succès. J'essaye avec VBA mais je galère et sèche.

Mon fichier exemple sera peut-être plus clair que mon laborieux discours.

D'avance merci pour votre aide ^^

dionys0s
 

Pièces jointes

  • Validation.xlsm
    55.1 KB · Affichages: 79
  • Validation.xlsm
    55.1 KB · Affichages: 81
  • Validation.xlsm
    55.1 KB · Affichages: 76

Bebere

XLDnaute Barbatruc
Re : Validation en cascade sur listes avec trous

bonsoir
un essai avec userform
à bientôt
 

Pièces jointes

  • Validation.zip
    55.1 KB · Affichages: 36
  • Validation.zip
    55.1 KB · Affichages: 41
  • Validation.zip
    55.1 KB · Affichages: 42

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Validation en cascade sur listes avec trous

Bonjour,

Voir PJ

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Not Intersect([A2:A10], Target) Is Nothing Then
   Set d = CreateObject("scripting.dictionary")
   For Each c In Application.Index([bd], , 1)
     If c <> "" Then
       temp = c.Value & c.Offset(, 6).Value
       d(temp) = ""
     End If
   Next c
   Sheets("bd").[J2].Resize(d.Count) = Application.Transpose(d.keys)
 End If
 '--
 If Not Intersect([b2:e10], Target) Is Nothing And Target.Count = 1 Then
  col = Target.Column
  Sheets("bd").Cells(2, 9 + col).Resize(100).ClearContents
  If Target.Offset(, -1) <> "" Then
    Set d = CreateObject("scripting.dictionary")
    For Each c In Application.Index([bd], , col)
     If c.Value <> "" Then
       If Left(c, col - 1) = Left(Target.Offset(, -1), col - 1) Then
         temp = c.Value & c.Offset(, 7 - col).Value
         d(temp) = ""
       End If
      End If
    Next c
    If d.Count > 0 Then Sheets("bd").Cells(2, 9 + col).Resize(d.Count) = Application.Transpose(d.keys)
   End If
  End If
End Sub

JB
 

Pièces jointes

  • Copie de Validation.xls
    347 KB · Affichages: 76
  • DVPlanComptableV2.xls
    347 KB · Affichages: 60
  • DVPlanComptableForm.xls
    354 KB · Affichages: 61
Dernière édition:

david84

XLDnaute Barbatruc
Re : Validation en cascade sur listes avec trous

Bonjour,
une solution par formules (2 listes) et un poil de VBA.
A+
Edit : fichier modifié
 

Pièces jointes

  • Liste_choixMultiple.v2.xls
    366.5 KB · Affichages: 79
Dernière édition:

Bebere

XLDnaute Barbatruc
Re : Validation en cascade sur listes avec trous

bonjour
une autre solution
vba et formule
à bientôt
 

Pièces jointes

  • Validation.zip
    61.9 KB · Affichages: 39
  • Validation.zip
    61.9 KB · Affichages: 34
  • Validation.zip
    61.9 KB · Affichages: 35

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…