Liste automatique des onglets d'un fichier [Fermé]

Signaler
Messages postés
16
Date d'inscription
lundi 14 septembre 2009
Statut
Membre
Dernière intervention
28 septembre 2010
-
Messages postés
1
Date d'inscription
lundi 15 juillet 2019
Statut
Membre
Dernière intervention
15 juillet 2019
-
Bonjour,
La formule =STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;32) "permet de récupérer le nom de l'onglet dans une cellule
Comment modifier cette formule pour récupérer tous les noms d'onglets sur la même feuille sous la forme d'une liste sans macro?
Merci pour vos réponses

4 réponses

Messages postés
23446
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
31 août 2020
6 322
Bonjour,

Créer un nom par 'insertion / nom / définir', par exemple nomFeuilles et dans 'Fait référence à' saisir : =LIRE.CLASSEUR(1)

en A1: =INDEX(nomFeuilles;LIGNE())
à tirer vers le bas.
(si tu démarres en ligne 3 remplacer LIGNE() par LIGNE()-2 etc)

Si tu ne veux que le nom de la feuille sans la référence au classeur :
=STXT(INDEX(nomFeuilles;LIGNE());CHERCHE("]";INDEX(nomFeuilles;LIGNE()))+1;30)

Et si tu ne veux pas afficher les #REF! tu peux ajouter un test sur nbval(nomFeuilles) qui te donne le nombre de feuilles du classeur
=SI(LIGNE()>NBVAL(nomFeuilles);"";STXT(INDEX(nomFeuilles;LIGNE());CHERCHE("]";INDEX(nomFeuilles;LIGNE()))+1;30))

eric
13
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 61419 internautes nous ont dit merci ce mois-ci

Messages postés
16
Date d'inscription
lundi 14 septembre 2009
Statut
Membre
Dernière intervention
28 septembre 2010

Bonjour,


Merci beaucoup!

J'ai juste un petit pb, lorsque j'ajoute une nouvelle feuille, il ne me la prend pas en compte. Je ne vois pas pourquoi?
Messages postés
16
Date d'inscription
lundi 14 septembre 2009
Statut
Membre
Dernière intervention
28 septembre 2010

Désolé en fait ca marche j'ai du faire une erreur
Merci encore et bonne journée
Messages postés
16
Date d'inscription
lundi 14 septembre 2009
Statut
Membre
Dernière intervention
28 septembre 2010

J'ai fait la modif ca marche
Merci
a+
Messages postés
1
Date d'inscription
lundi 15 juillet 2019
Statut
Membre
Dernière intervention
15 juillet 2019

C'est super cela fonctionne parfaitement
Messages postés
23446
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
31 août 2020
6 322
A ce moment là tu peux mettre dans la définition de nomFeuilles :
=STXT(ALEA()*0&LIRE.CLASSEUR(1);2;50)

Nécessitera quand même un F9 ou une validation de n'importe quelle cellule pour mettre à jour la liste sur un ajout de feuille (mais dynamique sur renommage ou suppression).
D'autre part la liste est donnée dans l'ordre des onglets, en tenir compte si déplacement de feuille.
eric
Messages postés
73
Date d'inscription
jeudi 26 août 2010
Statut
Membre
Dernière intervention
24 avril 2011

re,
J'ai testé la macro, c'est super! comment faire pour quelle ne rajoute pas les mêmes feuilles à chaque fois que l'on lance l'execution ?

cordialement
Messages postés
23446
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
31 août 2020
6 322
Bonjour,

1) ça pourrait être :
...
Select Case Left(sh.Name, 2)
Case "L_", "M_"
shresult.[A65536].End(xlUp).Offset(1, 0) = sh.Name
Case "T_"
shresult.[B65536].End(xlUp).Offset(1, 0) = sh.Name
Case Else
shresult.[C65536].End(xlUp).Offset(1, 0) = sh.Name
End Select
...
Attention aux majuscules/minuscules

2) effacer les réponses précédentes par ex :
Range("A2:C10").clearcontents
ou plus perfectionné....

eric
Messages postés
73
Date d'inscription
jeudi 26 août 2010
Statut
Membre
Dernière intervention
24 avril 2011

RE,
Je suis novice en macro, mais apparemment, je vois que tu a affecté un code pour les couleurs.
si j'ai bien pigé, la 4 c'est le vert, le 6 c'est le jaune ?
ou puis-je trouver le code des couleurs, dans l'aide d'excel?
Messages postés
23446
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
31 août 2020
6 322
re,

en voir de toutes les couleurs :
Sub couleurs() 
    Dim i As Long 
    For i = 1 To 56 
        Cells(i, 1) = i 
        Cells(i, 2).Interior.ColorIndex = i 
    Next 
End Sub

couleur de la cellule active :
Sub couleur() 
    MsgBox ("couleur : " & ActiveCell.Interior.ColorIndex) 
End Sub


Mais on s'écarte du sujet initial... ;-)

eric
Messages postés
73
Date d'inscription
jeudi 26 août 2010
Statut
Membre
Dernière intervention
24 avril 2011

Re,
Merci merci!
Messages postés
25248
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
29 août 2020
5 428
Bonsoir

PS désolé, je retire le message mais ça ne marche que si le nom de la feuille reste Feuil
on peut alors se demander l'utilité de ma proposition???

Avec mes excuses
Messages postés
44
Date d'inscription
mercredi 22 août 2007
Statut
Membre
Dernière intervention
17 mai 2018
20
Merci Eriiic

définition de nomFeuilles : =STXT(ALEA()*0&LIRE.CLASSEUR(1);2;50)
et

=SI(LIGNE()>NBVAL(nomFeuilles);"";STXT(INDEX(nomFeuilles;LIGNE());CHERCHE("]";INDEX(nomFeuilles;LIGNE()))+1;30))

font mon bonheur :)