Liste déroulante sans lignes masquées
Bonjour,
Petit soucis du jour, je cherche à adapter une liste déroulante de choix exempte des lignes masquées sur la feuille source.
J'ai un onglet "données" sur lequel apparaît une liste de personnel de A10 jusque A78. Ces lignes sont masquées selon l'absence.
Sur un autre onglet "Maint", je cherche à générer une liste déroulante de choix à partir de la liste du personnel mais en ne tenant pas compte des lignes masquées.
Quelqu'un pour m'aider svp?
D'avance merci.
Bonjour
Comme tu ne joins pas de fichier exemple, plus de 50 personnes ont regardé ton sujet et se sont abstenues. Penses-y pour ton prochain post.
Ci joint un fichier exemple avec un filtre automatique pour les absents et une colonne masquée sur la Feuille "Maint"
Personne10 et Personne20 sont masquées par le filtre automatique
Cordialement
Bonjour Amadeus,
Je te remercie pour ton intérêt.
Effectivement je n'avais pas joints de fichier et prends note de ta remarque pour mes prochains posts.
Le fichier que tu m'as envoyé répond parfaitement a mon besoin, cependant j'obtiens une erreur "#valeur!" si je masque la personne1?
Autre soucis, en essayant de l'adapter au fichier de destination j'obtiens une erreur "#ref!", dans toute la colonne de destination "Z" de l'onglet Maint, qui serait liée au "personnel" en bleu dans la formule suivante:
=SI(LIGNES($1:1)<=SOUS.TOTAL(3;Personnel);
INDEX(Personnel;PETITE.VALEUR(SI(SOUS.TOTAL(3;INDIRECT("données!A"&LIGNE(Personnel)))=1;LIGNE(INDIRECT("1:"&LIGNES(Personnel))));LIGNES($1:1)));"")
J'ai pourtant fait très attention aux syntaxes et respect du positionnement mais je conserve cette erreur.
Je joins le fichier pour faciliter la recherche.
D'avance merci pour ton aide.
Bonjour à tous,
Toujours au même point sur ce sujet, mes recherches pour solutionner le problème rencontré restent vaines.
S'il vous plaît, à l'aide
Cordialement
Salut tlam,
Salut Amadéus,
En VBA, la souplesse assurée...
- tu cliques en 'Données' [C:C] pour désigner les absents ou non ;
- la liste des présents s'actualise en 'Maint'
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'
Application.EnableEvents = False
Application.ScreenUpdating = False
'
If Not Intersect(Target, Range("C10:C" & Range("A" & Rows.Count).End(xlUp).Row)) Is Nothing Then
Target = IIf(Target = "x", "", "x")
With Worksheets("Maint")
.Columns(26).Value = ""
.[Z1] = "Présents"
For x = 10 To Range("A" & Rows.Count).End(xlUp).Row
If Range("C" & x).Value = "" Then _
.Range("Z" & .Range("Z" & Rows.Count).End(xlUp).Row + 1).Value = Range("A" & x).Value
Next
End With
End If
'
Application.ScreenUpdating = True
Application.EnableEvents = True
'
End Sub- les listes de validation se créent à la demande en 'Maint' [A:A] ;
- la qualification attachée à la personne s'affiche en [B:B]
Private Sub Worksheet_Change(ByVal Target As Range)
'
Application.EnableEvents = False
Application.ScreenUpdating = False
'
If Not Intersect(Target, Columns(1)) Is Nothing And Target.Row > 5 Then _
If Target <> "" Then Target.Offset(0, 1) = Worksheets("Données").Columns(1).Find(what:=Target, lookat:=xlWhole, LookIn:=xlValues).Offset(0, 1).Value: _
Target.Validation.Delete
'
Application.ScreenUpdating = True
Application.EnableEvents = True
'
End SubOn peut encore chipoter mais teste déjà cela...
A+