Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
XL 2010Liste de validation de noms de feuilles sans macro
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 !
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.
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.
Bonjour,
Un clic droit sur les flèches en bas à gauche des noms d'onglet donne cette liste.
Sinon:
Inscrire le nom des feuilles concernées dans une colonne (qui peut-être masquée)
Dans le menu "Données" ==>"Validation des données" sélectionner "Liste" et dans "Source" =La plage de la colonne avec les noms
En VBA il suffit de placer cette macro dans ThisWorkbook :
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
La macro se déclenche quand on active une feuille.
Si vous n'en voulez pas faites le travail manuellement comme indiqué par Jacky67.
RE..
De Boisgontier Jacques
Pour obtenir les noms des feuilles d'un classeur:
-Créer un nom de champ NomsFeuilles =LIRE.CLASSEUR(1)
-Sélectionner des cellules horizontales =SI(MAINTENANT()>0;STXT(NomsFeuilles;TROUVE("]";NomsFeuilles)+1;99))
En VBA il suffit de placer cette macro dans ThisWorkbook :
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
La macro se déclenche quand on active une feuille.
Si vous n'en voulez pas faites le travail manuellement comme indiqué par Jacky67.
RE...
Allergique au vba ???
Comme précisé par job75
LIRE.CLASSEUR est une fonction macro Excel 4.0 (Même si celle-ci n'apparait pas dans l'éditeur VB)
Le classeur doit être enregistré en .XLSM
Pour le reste, je ne vois pas d'autre solution que de masquer par la mise en forme conditionnelle
- 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