Bonsoir à tous,
Pourriez-vous me dire comment je peux faire pour que mon onglet prenne la valeur d'une cellule :
Par exemple si en A1 il y 2023, alors l'onglet sera 2023.
Merci par avance pour votre aide
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
On Error Resume Next
Sh.Name = Sh.Cells(1).Text
End Sub
Puis naviguer d'onglets en onglets, et chaque fois saisir une valeur en A1
Puis de nouveau, naviguer d'onglets en onglets
Et observer ce qui se passe en en bas de l'écran
Bonjour à tous,
Merci à phil69970 et Staple1600 pour leur code.
J'avais fait presque bon, j'ai juste oublié la gestion d'erreur. Merci pour le correctif.
Je vous prie de m'excuser d'avoir tardé à vous répondre.
Je vais pouvoir continuer mon projet.
A toute fin utile, connaissez-vous un tuto pour m'aider à réaliser un agenda permanent ?
P'tit coup de gueule :
Il y a dès fois où je ne comprends plus le raisonnement des personnes en quête de demandes :
Une demande doit refléter précisément ce que l'on attend.
- Dans le présent post, la demande est : « - comment je peux faire pour que MON onglet prenne la valeur d'une cellule ? «
- La question correspond à UN onglet du classeur sans formalisme et non TOUS les onglets.
Il n'est aucunement fait allusion à, si éventuellement je saisi (cela ne devrait pas arriver mais….) en [A1] : 123/0 ou Nov[2022] ou… ce qui générerait une erreur « 1024 » ????
Et pourtant on peut lire dans la réponse au post #9 : « J'avais fait presque bon, j'ai juste oublié la gestion d'erreur,,, » Déjà, je n'ai pas vu trace de code ou fichier à modifier, il a fallu le créer …. Par ailleurs, nous ne sommes pas en inter connexion avec le cerveau du demandeur ????
Désolé Staple1600 (ne m'en veux pas de rechercher la bêbête mais il y a dès fois où…) mais si la demande concernait l'ensemble des onglets, j'aurais mis (mais ta soluce semble convenir parfaitement à ReneDav) :
VB:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)'et non 'SheetActivate
On Error Resume Next
Sh.Name = Sh.Cells(1).Text
End Sub
Ainsi, le nom de la feuille change dynamiquement.
Si la demande avait été plus élaborée, on aurait aussi pu mettre une gestion des erreurs survenues avec un « On Error Goto err
err:
'Gestion de l'erreur 1024
If err.Number = 1024 Then MsgBox "Vérifier que le nom ne dépasse pas 31 caractères……..
Bon je vais prendre mes gouttes et mes vitamines...
Boujour Eric C,
Vous avez tout à fait raison, au départ ma demande ne concernait qu'un seul onglet de mon fichier et je l'ai appliqué au fichier pour lequel la demande la demande a été faite.
Mais j'ai retenu la solution de Staple1600 pour un autre fichier en parallèle. J'aurai dû l'expliquer au fil des conversations, je dois avouer que cela m'a évité d'ouvrir une autre discussion.
De toute façon cela ne fonctionne pas, je me suis réjouis un peu vite.
D'ailleurs il y a beaucoup choses qui ne fonctionnent pas correctement.
Je suis sincèrement désolé que vous l'ayez mal pris.
Cet agenda a été créé par patrick toulon
Si j'étais moi, je n'aurais jamais retenu la solution de Staple
Et si je suis lui, je pense qu'il dirait :" Principe K.I.S.S for ever)
Donc pas de VBA, on nomme ses onglets comme des bonhommes!
A la main!
C'est pour cela que Staple (oui, je sais je parle de moi à la 3ième personne ) avait écrit en préambule Au cas où
Et la proposition n'était là que comme une figure de style, un champ des possibles