Pour que l'onglet porte le nom d'une cellule

Résolu/Fermé
ec163 Messages postés 147 Date d'inscription jeudi 22 août 2013 Statut Membre Dernière intervention 27 septembre 2022 - 22 août 2014 à 12:10
ec163 Messages postés 147 Date d'inscription jeudi 22 août 2013 Statut Membre Dernière intervention 27 septembre 2022 - 22 août 2014 à 15:03
Bonjour,
j'aimerais savior s'il existe un moyen de renommer l'onglet"Feuil1" avec ce qui est contenu dans la cellule B1 (par exemple). par avance merci de vos réponses.
Je suppose qu'il existe des macros mais je ne pratique pas le VBA ou très peu :-(



4 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
22 août 2014 à 12:24
Bonjour

sélectionnez l'onglet clic droit visualiser le code et collez ceci:

Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Name = Range("A1").Value
End Sub

la feuille prendra le nom que vous entrerez en A1.. ou autre si vous modifier l'adresse A1 dans le libellé

crdlmnt
0
ec163 Messages postés 147 Date d'inscription jeudi 22 août 2013 Statut Membre Dernière intervention 27 septembre 2022 32
22 août 2014 à 13:31
Merci ça marche très bien, en revanche je n'avais pas posé ma question correctement, la case en question n'est pas à l'ouverture du document, complétée, ce qui fait bugué la macro, pourriez vous compléter votre formule en en précisant que si la cellule est vide alors l'onglet reste appelé Feuil 1, par avance merci.
0
WeaponEDGE Messages postés 113 Date d'inscription vendredi 18 juillet 2014 Statut Membre Dernière intervention 21 novembre 2014 9
Modifié par WeaponEDGE le 22/08/2014 à 13:53
Bonjour,

If Range("A1") = "" then
Activesheet.Name = "Feuil1"
else
Activesheet.Name = Range("A1").text
end if

Celà dit si vous mettez le code de Vaucluse directement en "Feuil1" au lieu d'un module ou à l'ouverture du Fichier alors la Macro s'activera à chaque fois qu'une donnée sera modifiée sur la feuille 1.
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
Modifié par ccm81 le 22/08/2014 à 13:55
Bonjour

Pour compléter la proposition de Vaucluse que je salue au passage, et, pour éviter que l'affectation du nom à la feuille soit exécuté à chaque changement dans la feuille

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) is Nothing Then
If Target.Value <> "" Then ActiveSheet.Name = Target.Value
End If
End Sub

Cordialement
0
ec163 Messages postés 147 Date d'inscription jeudi 22 août 2013 Statut Membre Dernière intervention 27 septembre 2022 32
22 août 2014 à 15:03
Merci, à vous deux.............................rapidité efficacité, que du bonheur.
sujet clos!
ec163
0