Renommer un onglet avec un mot dans une autre feuille

ryulair

XLDnaute Nouveau
Bonjour à tous, j'ai un petit soucis, j'ai trouvé la formule suivante sur le web mais je n'arrive pas à l'adapter à ce que je veux faire.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B13")) Is Nothing Then
ActiveSheet.Name = Target
End If
End Sub

Mon problème étant que l'entrée de donné B13 n'est pas sur la même feuille, en gros ce code sera inscrit dans la partie programmation d'un onglet mais la référence qui sera son nom est dans un autre onglet.

J'aimerais savoir si quelqu'un pourrait m'aider à modifier ce code pour qu'il fasse référence à une autre feuille?

Merci d'avance et bonne journée
 

Jack2

XLDnaute Occasionnel
Re : Renommer un onglet avec un mot dans une autre feuille

Bonsoir,

Je ne sais pas si cela te fera avancer (je suis débutant). Si tu es sur la feuille n°1 est que le nom est à un emplacement connu, on peut utiliser la procédure suivante :
Code:
Sub Change_Nom1()
Dim NomOnglet As String
    NomOnglet = Worksheets("Feuil2").Range("A1").Value
    ActiveSheet.Name = NomOnglet
End Sub
Si l'emplacement n'est pas connu, tu peux insérer un nom (Insertion, Nom, Définir sur Excel 2003). Dans le cas présent le nom est "OngletNom"
Code:
Sub Change_Nom2()
Dim NomOnglet As String
    NomOnglet = Worksheets.Range("OngletNom").Value
    ActiveSheet.Name = NomOnglet
End Sub

L'avantage de la deuxième solution, c'est que l'emplacement peut varier et que tu peux faire une recherche préalable de "OngletNom" comme cela est indiqué dans les liens ci-dessous (Discutions similaires)

A+
 

ryulair

XLDnaute Nouveau
Re : Renommer un onglet avec un mot dans une autre feuille

Ca n'a pas l'air de marcher, le code que je donnais si haut me permettait de modifier le nom de la page sur laquelle j'étais, je me demandais s'il n'y avait pas simplement une ligne de code que je pouvais ajouter pour faire référence à une autre feuille pour la recherche de coordonées (dans mon exemple B13)?

Merci quand même pour l'effort et ne t'inquiète pas je suis débutant également!
 

Dranreb

XLDnaute Barbatruc
Re : Renommer un onglet avec un mot dans une autre feuille

Bonsoir.
Vous posez carrément le problème à l'envers. C'est bien seulement quand la cellule portant ce fameux nom est changée, et pas autrement, qu'il faut renommer, mais renommer une autre feuille ! Laquelle ???
 

ryulair

XLDnaute Nouveau
Re : Renommer un onglet avec un mot dans une autre feuille

J'ai peut-être mal expliqué ce que je voulais, la formule mentionné dans mon premier post est parfaite pour changer le nom de l'onglet(Feuille) en conséquence de ce qui est écrit dans la case B13 qui se trouve sur ce même onglet(Feuille).

Ce que je veux, c'est savoir si je peux simplement ajouter une ligne de code qui me permettra de prendre ce qui est écrit dans la case B13 mais sur un onglet(Feuille) différent.

Merci pour votre temps et votre patience :O)
 

Jack2

XLDnaute Occasionnel
Re : Renommer un onglet avec un mot dans une autre feuille

Bonjour,

Les "Sub Change_Nom" permettent de changer le nom de l'onglet de la feuille en cours ("feuil1") en allant chercher un nom dans une autre feuille ("feuil2"). Je pensais que c'est ce que tu voulais faire (je n'ai pas pris en compte le test "If Not Intersect…"). Par contre, Dranreb n'est pas un débutant, en rentrant du boulot je vais essayer de comprendre sa remarque et comprendre à quoi te sert ce test (sauf si tu l'expliques).

PS Quand on débute, on a du mal à faire passer le message. Tu devrais peut-être expliquer plus longuement pour que les personnes du forum puissent t'aider.

A+ et bon courage
 

ryulair

XLDnaute Nouveau
Re : Renommer un onglet avec un mot dans une autre feuille

Salut,

Moi je suis vraiment un débutant, j'ai prit cette formule sur un site web et j'essaie de l'adapter à ce que je veux, je trouve des parcelles par-ci et par-là mais j'ai beaucoup de difficulté à comprendre le code VBA. J'ai vraiment besoin de la formule complète pour l'essayer par la suite.

Merci
 

Dranreb

XLDnaute Barbatruc
Re : Renommer un onglet avec un mot dans une autre feuille

Ce que je veux dire c'est que vous n'allez tout de même pas changer 50000 fois le nom de cette feuille (pour y mettre d'ailleurs toujours le même) chaque fois qu'une cellule quelconque, qui n'a rien à voir, est modifiée dans la feuille à renommer ! Ce n'est pas dans la Workheet_Change de cette feuille là qu'il faut mettre ça mais dans celle de l'autre, celle qui porte la cellule contenant ce nom. Le tout c'est de savoir à ce moment là, quand on change ce nom, de quelle feuille elle doit être le nouveau nom.
 

ryulair

XLDnaute Nouveau
Re : Renommer un onglet avec un mot dans une autre feuille

J'ai pas le temps de discuter sur les raisons pourquoi je veux avoir cette commande je demandais simplement si quelqu'un pouvait m'aider mais ca l'air que c'est trop compliqué alors je vais aller voir ailleurs...

Merci pour ceux qui m'ont répondu de façon professionnel.

Bonne journée.
 

Dranreb

XLDnaute Barbatruc
Re : Renommer un onglet avec un mot dans une autre feuille

Non mais je comprends très bien que vous vouliez qu'un nom de feuille soit celui contenu dans une certaine cellule d'une autre feuille. Vous n'avez pas besoin de m'expliquer pourquoi vous voulez ça. Ce que je ne comprends pas c'est pourquoi vous ne le faites pas depuis cette autre feuille, quand on le change, ce nom. La Workheet_Change de la feuille à renommer ne pourra jamais réagir spécifiquement à ce changement dans une autre feuille.
 

Jack2

XLDnaute Occasionnel
Re : Renommer un onglet avec un mot dans une autre feuille

Bonsoir,

Il ne faut pas abandonner ! (je tente le VBA depuis fin mars). Essaye ceci ("B13) est dans la feuille active) :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("B13")) Is Nothing Then
ActiveSheet.Name = Target.Value
End If
End Sub
La procédure appelante est :
Code:
Sub Test()
Dim Plage As Range
' feuille non active
    Set Plage = Worksheets("Feuil2").Range("A1")
    Worksheet_Change Plage
End Sub
Ca fonctionne chez moi, la feuille ("feuil1") prend le nom de la cellule "A1" de la deuxième feuille.

Ce n'est pas pour faire de la pub, mais sur ce forum, les gens me semblent plus "patients" qu'ailleurs.

A+ j'espère
 
Dernière édition:

DoubleZero

XLDnaute Barbatruc
Re : Renommer un onglet avec un mot dans une autre feuille

Bonjour, le Fil, le Forum,

Bienvenue sur XLD, ryulair.

Une suggestion avec ce code :

Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
'Feuil1 = codename de l'onglet qui doit changer de nom (adapter ce nom)
'Procédure à placer dans le module de l'onglet destiné à renommer la Feuil1
If Not Intersect(Target, Range("B13")) Is Nothing Then Feuil1.Name = Target
End Sub

Ne pas hésiter à lancer un S.O.S. en cas de problème !

A bientôt :)
 

Jack2

XLDnaute Occasionnel
Re : Renommer un onglet avec un mot dans une autre feuille

Bonsoir,

J'espère que ryulair n'est pas découragé. Comme je l'ai écrit plus haut, je débute et je découvre l'objet Range. J'aimerais savoir pourquoi dans mon exemple, je suis obligé de mettre On Error Resume Next pour éviter que ça plante (erreur 1004).

Dans ton code, je n'arrive pas à définir Feuil1. Est-il possible d'avoir un exemple SVP ?

PS Si je le définis ainsi : Set Feuil1 = Worksheets("Feuil1").Range("A1") et que j'enlève le Not devant Intersect, ce code, définit le nom qui doit renommer l'onglet à la cellule ("A1") et que l'on peut atteindre par F5.

Ca fait beaucoup de questions.

A+ peut-être
 

eriiic

XLDnaute Barbatruc
Re : Renommer un onglet avec un mot dans une autre feuille

Bonsoir à tous,,

@jack2
J'aimerais savoir pourquoi dans mon exemple, je suis obligé de mettre On Error Resume Next pour éviter que ça plante (erreur 1004)
Si tu ne dis pas quel code et quelle ligne plante tu risques d'attendre longtemps une réponse.

Ton Ps n'est pas très compréhensible. Ca commence par Si, on attend un alors.... qui ne vient pas...
Et Dans ton code... : tu t'adresses à qui ?
Je pense que tu t'en doutes mais c'est mieux en le disant : on ne met pas On Error Resume Next pour se débarrasser d'une erreur, mais uniquement à bon escient, et en sachant pourquoi on le fait (cette erreur est normale et je n'ai pas besoin de la traiter).

eric
 
Dernière édition:

Jack2

XLDnaute Occasionnel
Re : Renommer un onglet avec un mot dans une autre feuille

Bonjour,

Ca plante à la ligne suivant l'instruction on Error :
Code:
If Not Intersect(Target, Range("B13")) Is Nothing

J'ai hésité à mettre le PS dans la mesure où je ne maîtrise pas ce que je fais, d'où le problème de compréhension que j'évoquais plus haut à l'attention de ryulair concernant les débutants que nous sommes. En général, je trouve les réponses dans les différents fils du forum. Dans le cas présent, je me suis adressé à ryulair car sa question restait sans réponse.

Concernant la procédure de DoubleZero, si elle se présente ainsi :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Feuil1 As Range
Set Feuil1 = Worksheets("Feuil1").Range("A1")
'Procédure à placer dans le module de l'onglet destiné à renommer la Feuil1
' B13 contient le texte NouveauNom
On Error Resume Next
If Intersect(Target, Range("B13")) Is Nothing Then Feuil1.Name = Target
End Sub

Alors la cellule A1 de la feuille n°1 se voir définir le nom NouveauNom accessible par la touche F5

Ne connaissant que très partiellement l'objet Range à travers l'aide d'Excel, ce sont les deux premières lignes de nom dernier post qui, je pense, me permettraient d'avancer.

Merci et A+
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 977
dernier inscrit
Hermet