Vous voyez bien que non !En PJ, la liste de validation, est définie par la plage =$A$2:$A$10. Est-ce juste !?
=DECALER($A$2;;;NB.SI($A:$A;"><")-1)
Bonjour,Bonjour,
J'aimerais créer une liste de validation de données, qui répertorie tous les noms de feuilles dans le classeur, à l'exception de la feuille où se trouve la liste de validation.
Merci d'avance.
Inscrire le nom des feuilles concernées dans une colonne (qui peut-être masquée)
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim s As Object, n
If Sheets.Count > 1 Then ReDim a(1 To Sheets.Count - 1, 1 To 1)
For Each s In Sheets
If s.Name <> Sh.Name Then n = n + 1: a(n, 1) = s.Name
Next
'---restitution---'
With Sh.[A1] '1ère cellule de destination, à adapter
If n Then .Resize(n) = a
.Offset(n).Resize(Sh.Rows.Count - n - .Row + 1).ClearContents 'RAZ en dessous
End With
End Sub
RE..Bonsoir Jacky,
Comment récupérer dans cette colonne, à l'aide d'une formule, les noms des feuilles du classeur ?
Hello job75Bonsoir apt, Jacky67,
En VBA il suffit de placer cette macro dans ThisWorkbook :
La macro se déclenche quand on active une feuille.VB:Private Sub Workbook_SheetActivate(ByVal Sh As Object) Dim s As Object, n If Sheets.Count > 1 Then ReDim a(1 To Sheets.Count - 1, 1 To 1) For Each s In Sheets If s.Name <> Sh.Name Then n = n + 1: a(n, 1) = s.Name Next '---restitution---' With Sh.[A1] '1ère cellule de destination, à adapter If n Then .Resize(n) = a .Offset(n).Resize(Sh.Rows.Count - n - .Row + 1).ClearContents 'RAZ en dessous End With End Sub
Si vous n'en voulez pas faites le travail manuellement comme indiqué par Jacky67.
A+
Bien sûr c'est pour ça que j'ai précisé que le travail doit alors être fait manuellement.Oui , mais le demandeur avait spécifié
Liste de validation de noms de feuilles sans macro
RE...Bonsoir job, Jacky,
Merci pour la formule
job : Merci à toi également pour le code VBA
Il y a un petit soucis :
Comment éviter d'avoir le nom de la feuille Accueil en plus de ceux avec erreur #N/A dans la liste de validation de données ?
Au contraire, je suis un VBAist (j'adore coder), mais dans ce cas, je voulais trouver une solution à l'aide de formules.Allergique au vba ???
Vous voyez bien que non !En PJ, la liste de validation, est définie par la plage =$A$2:$A$10. Est-ce juste !?
=DECALER($A$2;;;NB.SI($A:$A;"><")-1)
Il faut la définir par la formule : =DECALER($A$2;;;NB.SI($A:$A;"><")-1)
LIRE.DOCUMENT(1) renvoie le nom de la feuille active.
Pour le voir entrez dans une cellule la formule =NF