XL 2021 Revenir à la dernière feuille "Créée"

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous :)

LOL, en voilà une bien bonne :)
Je cherche à revenir ou à activer la dernière feuille que j'ai crée...

Particularité :
La feuille crée à le nom de Feuil1 et ensuite je la renomme pour qu'elle ait le nom de mon Client
Pour l'exemple : "A moi les petites Olé Olé P" ou "A moi les p'tits mectons"

Besoin
APRES AVOIR CREE MA NOUVELLE FEUILLE…
Jai activé plusieurs feuilles à la suite et je suis sur une autre feuille active

J'ai besoin de revenir (activer) ma dernière feuille créée soit : "A moi les petites Olé Olé P"ou "A moi les p'tits mectons" selon le nom donné

Je sais comment revenir sur la feuille activée précédemment
Mais je ne trouve rien sur le net pour revenir à la dernière feuille créée

Si mon sujet retient votre attention
Pour test et pour vous expliquer ce que je fais, voici mes actions
:
A partir de la feuille "Facture"
1 en A1, j'entre le n° du Client, 1 ou 2
2 en L33, j'entre le n° du Pack de 2,3 ou 4
3 ma facture se fait et je clique sur le bouton "Go Facture"
4 mon code m'ouvre une nouvelle feuilX que je renomme (toujours avec mon code) du nom de mon Client

En espérant que vous m'aurez compris, auriez-vous la solution ?
Un grand merci à toutes et à tous,
Je joins le fichier test et je continue mes recherches...
:)
 

Pièces jointes

  • Facturation Mois test4.xlsm
    289.2 KB · Affichages: 4
Dernière édition:
Solution
Bonjour à tous,
sauvegarde son nom dans un nom :
VB:
Sub sauverDerF()
    ' créer et renommer ta feuille puis :
    ActiveWorkbook.Names.Add Name:="dernièreFeuille", RefersToR1C1:=ActiveSheet.Name
End Sub

Sub actDerF()
    Worksheets([dernièreFeuille]).Activate
End Sub

Reste accessible même si le fichier a été fermé
eric

sylvanu

XLDnaute Barbatruc
Supporter XLD
Mea culpa, j'ai merdé :(. J'ai confondu Index et CodeName.
Le CodeName est le nom donné par XL à une feuille, et ce CodeName est unique dans la vie du fichier.
Voici le bon code :
VB:
Sub AccèsDernièreFeuilleCrée()
Dim F, Sh, Nom$, Numéro%, NumMax%: NumMax = 0
Set obj = CreateObject("vbscript.regexp")
obj.Global = True
obj.Pattern = "[a-z]"
For Each F In Worksheets
    Nom = F.CodeName
    Numéro = obj.Replace(LCase(Nom), "")
    If Numéro > NumMax Then NumMax = Numéro: Sh = F.Name
Next F
Sheets(Sh).Select
End Sub
Je me suis inspiré d'un code de J. Boisgontier.
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re,

Ca, Lionel, ce n'est pas possible, quelle que soit la configuration. Le N° index est unique dans la vie d'un fichier. Votre feuille N° 8 a peut être été renommée, mais la dernière créé est bien la N°13.
Regardez cet ex :
1- J créé 5 feuilles dans un fichier, j'obtiens ça :
Regarde la pièce jointe 1181135
2- Je supprime 4 feuilles :
Regarde la pièce jointe 1181136
3- J'en recrée une :
Regarde la pièce jointe 1181137
Même renommée elle porte obligatoirement l'index 6, XL a mémorisé toutes les feuilles crées même si celles ci ont été supprimées, donc a bien mémorisé les index de 2 à 5 et ne les ré utilisera jamais.

NB: On parle bien de création de feuilles ? Pas de renommage ou de déplacements.
Ben oui lol : mais la dernière créée est la n° 8 et c'est celle que j'ai besoin d'activer :)
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
mais la dernière créée est la n° 8 et c'est celle que j'ai besoin d'activer
Alors je jette l'éponge. :)

Car d'après MS CodeName donne bien l'ordre de création des feuilles, et n'est pas modifiable ni par la position, ni par l'utilisateur.
Dans votre exemple Feuil13 a été crée après Feuil8.
Donc il y a quelque chose qui m'échappe. :( :(:(
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Alors je jette l'éponge. :)

Car d'après MS CodeName donne bien l'ordre de création des feuilles, et n'est pas modifiable ni par la position, ni par l'utilisateur.
Dans votre exemple Feuil13 a été crée après Feuil8.
Donc il y a quelque chose qui m'échappe. :( :(:(
Re-Bjr :)
La feuille 13 (Nbr RdV) a été créée à la création du classeur.
La feuille 8 est bien la dernière créée au moment de l'exécution du code :)

D'ailleurs, ça me donne un idée : Ce serait pas mal que je vois comment mettre une date de création aux feuilles.
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re :)
J'essaie de comprendre et je repars du classeur joint lors de ma demande #post1
Voici les feuilles existantes à ce moment là :
1697368896269.png

Maintenant, j'exécute le code
Et voici la dernière feuille créée :
1697369059217.png

Fichier test du #post1 (avant création de la feuille)
:)
 
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
Même renommée elle porte obligatoirement l'index 6
De mémoire, ça ne le fait pas chez moi : ça prend le numéro le plus petit non utilisé. C'est pourquoi je n'avais pas proposé ce système au départ.
Et en plus je crois qu'il faut scanner les CodeName des feuilles pour trouver le plus élevé. Ça fait une usine à gaz pour pas grand chose, je trouve.

Il suffit, au moment du renommage de la feuille, de mémoriser son nom, soit (comme je disais) dans une variable globale, soit (comme disait eriiic) dans un Nom, soit dans une cellule, etc.
 

Discussions similaires

Statistiques des forums

Discussions
312 207
Messages
2 086 232
Membres
103 161
dernier inscrit
Rogombe bryan