0
votes

Renommer les onglets en utilisant des macros

Je souhaite renommer des onglets dans un classeur de sorte que lorsque je change de chiffres dans une cellule de certaines cellules dans la première onglet, le nom de l'onglet change automatiquement avec celui-ci.

Je ne veux pas de bouton attribué à la macro (sauf si nécessaire). Jusqu'ici mon code n'a pas suivi. Ceci est mon code d'origine mais les noms d'onglets ne changent pas avec elle. xxx

si quelqu'un peut aider avec cela alors ce serait génial!

Mise à jour: J'ai essayé d'utiliser ce code ci-dessous, mais cela ne change toujours pas l'onglet. Il convient de noter que la cellule utilisée pour la dénomination est dans une languette différente. xxx


6 commentaires

Quel est le 1. dans si cible.Address <> 1. & "$ B $ 1" ?


"1." Ce que je veux apparaître dans l'onglet avant le contenu de la cellule, par exemple "1.201906"


D'accord. Mais l'adresse de la cellule n'aura pas 1. dedans. L'adresse de la cellule est juste $ B $ 1 , non? Aussi, s'il vous plaît partager le code pour ChanglesheetName .


N'incluez pas le nom de la feuille dans la comparaison de cible.Address . Juste la référence de la cellule.


^ Pour une explication plus détaillée de la plage Gamme.Address Works, voici le Documentation .


Où définissez-vous à quelle chaque feuille est renommée? Est-ce une cellule fixe sur chacune des feuilles? L'emplacement de la cellule est-il identique sur chaque feuille? Pourquoi le seul déclencheur pour changer la cellule sur la première feuille de calcul? Si vous nous expliquez ce qu'est-ce que vous essayez exactement de faire, nous pouvons peut-être venir avec une meilleure solution. Les questions sonnent un peu comme un problème XY.


3 Réponses :


0
votes

Pas grand chose à changer: xxx

mais pour ajouter, ce que vous pouvez modifier, c'est simplement que si le cible.Address est $ b 1 $ puis exécutez l'appel. xxx


1 commentaires

Ou simplement vous débarrasser de appel , il est généralement considéré comme obsolète.



0
votes

Je suppose que vous voulez changer le nom de la feuille de calcul à tout ce qui est écrit dans la cellule B1. Dans ce cas, vous pouvez utiliser cette pièce de code, au lieu d'utiliser une sur chaque feuille.

La vérification de la liste de frappe doit empêcher toute erreur si la plage n'est pas sur une feuille de calcul. P>

dans le code-derrière de ce type de ce livre: P>

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Not TypeName(Target.Parent) = "Worksheet" Then Exit Sub
    If Target.Address = "$B$1" And Target.Value2 <> "" Then
        Target.Worksheet.Name = Target.Value2
    End If
End Sub


0 commentaires

0
votes

Cela peut aider, dès que vous quittez l'onglet Sheet4, la feuille1,2,3 Changer

Private Sub Worksheet_Deactivate()
    Sheet1.Name = "North " & Sheet4.[E1] & " " & Sheet4.[F1]
    Sheet2.Name = "EAST SIDE " & Sheet4.[E1] & " " & Sheet4.[F1]
    Sheet3.Name = "WEST SIDE " & Sheet4.[E1] & " " & Sheet4.[F1]
End Sub


0 commentaires