Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Usine à gaz

XLDnaute Barbatruc
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
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
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
Re
J'essaie de comprendre et je repars du classeur joint lors de ma demande #post1
Voici les feuilles existantes à ce moment là :

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

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

Réponses
6
Affichages
391
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…