XL 2016 Une cellule qui change le nom de l'onglet de la page active en VBA

ChantalTreize

XLDnaute Occasionnel
Bonsoir tout le monde,
Je cherche à savoir quel pourrait être le code VBA si dans la cellule C3 je met Lundi par exemple
le nom de l'onglet de la page active se change automatiquement en Lundi
Suis je assez claire
Merci d'avance
Chantal
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
Il vaudrait quand même mieux, à mon avis que ça ne s'exécute que si c'est la cellule C3 qui change, et non pas chaque fois que n'importe laquelle change !
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Address <> "$A$3" Then Exit Sub
   On Error Resume Next
   Me.Name = Target.Value
   End Sub
 

Eric C

XLDnaute Barbatruc
Bonsoir le forum
Bonsoir ChantalTreize, Claudy, Dranreb

Il est bien évident que tout à chacun aura rectifié l'adresse de la cellule du code de notre ami Dranreb que je salue au passage ;). Je viens de voir que le nom de la feuille active pouvait être remplacée par "Me" ? tout comme un UserForm ? On en apprend tous les jours sur ce sympathique forum.
Bonne soirée à toutes & à tous
@+ Eric c
 

Dranreb

XLDnaute Barbatruc
Désolé pour l'erreur, If Target.Address <> "$C$3" Then Exit Sub
Non, la feuile n'est pas nécessairement active. Me représente toujours l'objet auquel le code est spécifiquement attaché. S'il s'agit d'un module de classe, il en représente plus exactement l'exemplaire dont on a invoqué une méthode ou une propriété, ou dans lequel un évènement, souvent lié à ce qu'il représente mais pas toujours, s'est produit. Dans le module ThisWorkbook, Me représente aussi ThisWorkbook par exemple.

.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonsoir le fil

Alors je suppute et j'anticipe (peut-être à tort ;))
Sil s'agit de saisir en C3 la date du jour et donc de donner à l'onglet le nom du jour en cours, alors on peut tester la chose suivante (à mettre dans ThisWorkBook)
VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim x$
x = Format(Date, "dddd")
If Sh.CodeName = "Feuil1" Then
Sh.Name = StrConv(x, vbProperCase)
End If
End Sub
Ici la feuille concernée est la feuille nommée Feuil1

PS: On pourrait aussi mettre la chose dans WorkBook_Open() en lieu et place du Workbook_SheetActivate
 

Discussions similaires

Statistiques des forums

Discussions
312 108
Messages
2 085 377
Membres
102 876
dernier inscrit
BouteilleMan