[Résolu] Récupérer par macro le nom de certains onglets dans un plage de cellules

  • Initiateur de la discussion Initiateur de la discussion Gecko62
  • Date de début Date de début

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 !

Gecko62

XLDnaute Nouveau
Bonjour,

J'ai un classeurs avec 1 de 40 feuilles dont le nombre peut varier.

J'aimerais récupérer dans des cellules le nom de tous les onglets situé entre la feuille "a" et la feuille "z"

J'ai beau chercher, je ne trouve pas de solution

Un grand merci anticipé pour votre aide

Bien cordialement
 
Dernière édition:
Re : Récupérer par macro seulement le nom de certains onglets dans un plage de cellul

Bonsoir Gecko62,

Il va falloir nous en dire un peu plus ...
Peux tu nous donner 2 ou 3 noms de tes feuilles que tu veux pouvoir récupérer

A+
 
Re : Récupérer par macro seulement le nom de certains onglets dans un plage de cellul

Re bonjour,

Je prépare un fichier pour la gestion d'une compétition de Natation synchronisée et les onglets que j'aimerais lister sont en fait soit les noms des équipes nationales, soit les noms des clubs, il y a un onglet par équipe.

Je en peux ainsi pas vous donner de noms précis, mais il pourrait y avoir : Allemagne, Japon, Suisse juniors, Belgique, Canada, AquaSynchro, ...

Ces onglets ne sont pas listés par ordre alphabétique, mais sont présents par ordre d'inscription. Les seuls repères sont : ils se trouvent tous entre un onglet "A" et un onglet "Z" qui me servent de délimiteurs.

En vous remerciant une fois de plus pour votre aide

Bien cordialement
 
Re : Récupérer par macro seulement le nom de certains onglets dans un plage de cellul

Bonjour à tous



Pas de support, et trop flemmard pour m'amuser à essayer de le reconstituer à partir des indications...

VB:
Sub toto()
Dim i%, tf As Boolean
ReDim ns$(1 To 1)
    ns(1) = "TITRE qui convient"
    With Worksheets
        For i = 1 To .Count
            With .Item(i)
                If .Name = "Z" Then tf = False
                If tf Then ReDim Preserve ns(1 To UBound(ns) + 1): ns(UBound(ns)) = .Name
                If .Name = "A" Then tf = True
            End With
        Next
        Feuil1.[A1].Resize(UBound(ns)).Value = WorksheetFunction.Transpose(ns)
    End With
End Sub
ou bien :
VB:
Sub tata()
Dim i As Worksheet, tf As Boolean
ReDim ns$(1 To 1)
    ns(1) = "TITRE qui convient"
    For Each i In Worksheets
        If i.Name = "Z" Then tf = False
        If tf Then ReDim Preserve ns(1 To UBound(ns) + 1): ns(UBound(ns)) = i.Name
        If i.Name = "A" Then tf = True
    Next
    Feuil1.[A1].Resize(UBound(ns)).Value = WorksheetFunction.Transpose(ns)
End Sub
renvoie la liste des onglets situés entre les onglets A et Z dans la colonne A de la feuille Feuil1. (L'onglet A doit être placé avant l'onglet Z.)

À tester...​


ROGER2327
#5620


Mardi 17 Pédale 139 (Saint Dricarpe, prosélyte - fête Suprême Quarte)
21 Ventôse An CCXX, 0,2132h - mandragore
2012-W10-7T00:30:42Z
 
Dernière édition:
Re : Récupérer par macro seulement le nom de certains onglets dans un plage de cellul

Bonjour Gecko62, Roger2327

Listage des noms d'onglets entre deux feuilles.
1) sélectionner n'importe quelle cellule de la 1ière feuille dont on veut extraire le nom
2) sélectionner n'importe quelle cellule de la dernière feuille dont on veut extraire le nom
3) Sélectionner la cellule d'une feuille à partir de laquelle on écrit les noms des onglets.
 

Pièces jointes

Dernière édition:
Re : Récupérer par macro seulement le nom de certains onglets dans un plage de cellul

Merci Roger2327 et ma pomme,

Vos solutions fonctionnent à merveille !! Je vais conserver la deuxième solution de Roger2327 en rendant attentif au fait que les noms d'onglet "A" et "Z" sont sensibles à la casse (majuscule ou minuscule).

Une fois encore un grand merci pour votre promptitude
 
Re : Récupérer par macro seulement le nom de certains onglets dans un plage de cellul

Re...


Pour rendre la procédure insensible à la casse :
VB:
Sub tata()
Dim i As Worksheet, tf As Boolean
ReDim ns$(1 To 1)
    ns(1) = "TITRE qui convient"
    For Each i In Worksheets
        If UCase(i.Name) = "Z" Then tf = False
        If tf Then ReDim Preserve ns(1 To UBound(ns) + 1): ns(UBound(ns)) = i.Name
        If UCase(i.Name) = "A" Then tf = True
    Next
    Feuil1.[A1].Resize(UBound(ns)).Value = WorksheetFunction.Transpose(ns)
End Sub


ROGER2327
#5625


Mardi 17 Pédale 139 (Saint Dricarpe, prosélyte - fête Suprême Quarte)
21 Ventôse An CCXX, 5,4871h - mandragore
2012-W10-7T13:10:09Z
 
- 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

Discussions similaires

Réponses
3
Affichages
881
Retour