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

Renommer onglet

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 !

Freedal

XLDnaute Junior
Bonjour à tous,
Je souhaiterai renommer une feuille selon le nom dans une cellule se trouvant sur une autre feuille.
Merci pour votre aide.
 
J'ai saisis ceci :
Sheets(N° de la feuille qui doit être renommer).Name = Sheets("Nom de la feuille ou se trouve la cellule de référence").[A1]
ça fonctionne mais lorsque je renomme ma cellule A1, l'autre feuille ne se renomme pas, je suis obligé d'exécuter la macro manuellement.
N'y aurait-il pas un moyen que la macro s'exécute automatiquement lorsque je saisis un nouveau nom dans la cellule A1 et que je clic sur "Entrée" ?
 
Rebonjour Freedal

Avec un peu de retard.
Pas gros utilisateur des privatesub mais ça doit correspondre à ta demande en modifiant la cellule A1 dans la feuille de départ (sheets(1)) on a le nom de la sheets(2) automatiquement modifié.
J'ai laissé le code avec deux variantes en module 1 sinon -
si tu souhaites soit nommer les feuilles soit utiliser leur numéro (dans l'ordre d'affichage)

++ zebanx
 

Pièces jointes

Dernière édition:
Bonjour zebanx,
merci pour ta réponse, je débute en VBA, serait possible de mettre plutôt la macro sur la feuille "Fin" ou l'onglet doit être renommer car il y aura plusieurs feuilles "Fin" à renommer suivant différentes cellules de la feuille principale "Départ"
Merci
 
Bonsoir.
Non, ce n'est pas possible. Une proposition pour la 1ère feuille:
VB:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Rows.Count <> 1 Or Target.Columns.Count <> 1 _
   Or Target.Column <> 1 Then Exit Sub
Sheets(Target.Row).Name = Target.Value
End Sub
 
Bonjour zebanx , Dranreb
Merci pour ton fichier, ça fonctionne très bien.
Le problème c'est que les feuilles qui devront être renommer ne sont pas forcément placer dans l'ordre, et que d'autres feuilles viendront interférer, qu'elles soient ici au départ ou qu'elles soient créer à l'usage.
Merci si vous pouvez m'éclairer.
 

Pièces jointes

Bonjour Freedal,

C'est ce qu'on appelle une demande à tiroir (qui aurait pu être évité tu ne crois pas ??)
(1) petit exemple simple en 1 seule ligne
(2) il faut l'automatiser
(3) il y a plusieurs feuilles
(4) mais toutes ne sont pas à renommer
.... est-ce vraiment fini ou y aura-t-il d'autres demandes STP ?😵

Je ne sais pas répondre pour ta dernière demande mais, sans doute, faudrait-il pouvoir mettre une fonction qui permette de ressortir le numéro d'affichage de la feuille au départ pour l'utiliser dans le code de la privatesub.

++ zebanx

Edit : ci-joint une fonction pour récupérer le numéro d'affichage de la feuille en fonction de son nom mais je ne sais pas comment l'imbriquer dans la demande de Freedal.
Si l'un(e) d'entre vous peut me venir en aide, merci par avance.


Code:
Function numSh(c As Range) As Variant
Application.Volatile
For i = 1 To Sheets.Count
If Sheets(i).Name = Range(c.Address).Value Then
numSh = i
End If
Next
End Function
 
Dernière édition:
Bonjour.
Essayez comme ça :
VB:
Option Explicit
Private Wsh As Worksheet
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
Set Wsh = ThisWorkbook.Worksheets(CStr(Target(1, 1).Value))
If Err Then Set Wsh = Nothing
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim NouvNom As String
If Wsh Is Nothing Then Exit Sub
NouvNom = Target(1, 1).Value
On Error Resume Next
Wsh.Name = NouvNom
If Err Then
   MsgBox "Err " & Err & " en tentant de renommer '" & NouvNom & "' la feuille '" & _
      Wsh.Name & "'." & vbLf & Err.Description, vbCritical, "Renommer feuille"
   Application.EnableEvents = False
   Target(1, 1).Value = Wsh.Name
   Application.EnableEvents = True
   End If
End Sub
 
Dernière édition:
Bonsoir Dranreb Zebanx et un grand merci. 🙂
Je vais essayer d'interpréter le travail que vous avez fait.
Je n'ai jamais fait de macros ni de code auparavant, j'arrivais à m'en sortir que par les formules. 🙁
La macro renomme les onglets jusque ST26, comment puis-je faire pour appliquer cela jusque ST43 ?
@+
 
- 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
4
Affichages
137
Réponses
3
Affichages
206
  • Question Question
Microsoft 365 Mozaïque photos
Réponses
17
Affichages
498
Réponses
4
Affichages
142
  • Question Question
XL pour MAC Graphique
Réponses
12
Affichages
471
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…