XL 2010 Liste de validation de noms de feuilles sans macro

apt

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

Jacky67

XLDnaute Barbatruc
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.
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
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonsoir apt, Jacky67,

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.

A+
 
Dernière édition:

Jacky67

XLDnaute Barbatruc
Bonsoir Jacky,



Comment récupérer dans cette colonne, à l'aide d'une formule, les noms des feuilles du classeur ?
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))

-Matricielle==>Valider avec Maj+Ctrl+entrée
 

Jacky67

XLDnaute Barbatruc
Bonsoir apt, Jacky67,

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.

A+
Hello job75
Oui , mais le demandeur avait spécifié
Liste de validation de noms de feuilles sans macro

 

apt

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

Pièces jointes

  • NomsFeuilles_Formule.xlsx
    11.5 KB · Affichages: 4
Dernière édition:

Jacky67

XLDnaute Barbatruc
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 ?
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
 

Pièces jointes

  • NomsFeuilles_Formule.xlsm
    13 KB · Affichages: 1

job75

XLDnaute Barbatruc
Bonjour apt, Jacky67, le forum,

Voyez le fichier joint et les noms définis NomsFeuilles, NF et Resultat.

Les 2 fonctions macros Excel 4.0 LIRE.CLASSEUR et LIRE.DOCUMENT sont utilisées.

Nota : les formules des résultats sont rendues volatiles par la fonction INDIRECT.

Si des feuilles sont ajoutées elles seront recalculées en appuyant sur la touche F9.

A+
 

Pièces jointes

  • Liste feuilles(1).xlsm
    13.8 KB · Affichages: 6
Dernière édition:

apt

XLDnaute Impliqué
Bonjour Jacky67, job75, le forum,
Allergique au vba ???
Au contraire, je suis un VBAist (j'adore coder), mais dans ce cas, je voulais trouver une solution à l'aide de formules.

Merci pour les deux exemple joints.

En PJ, la liste de validation, est définie par la plage =$A$2:$A$10. Est-ce juste !?
 

Pièces jointes

  • Liste feuilles(v2).xlsm
    16.3 KB · Affichages: 2

Discussions similaires

Réponses
8
Affichages
414

Statistiques des forums

Discussions
312 112
Messages
2 085 415
Membres
102 885
dernier inscrit
AISSOU