Attribuer à feuille excel le contenu d'une cellule de cette feuille

pepeye66

XLDnaute Nouveau
Bonsoir tous,
J'ai saisi la macro suivante:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("B2")) Is Nothing Then
ThisWorkbook.ActiveSheet.Name = Range("B2")
End If
End Sub

Elle fonctionne bien mais si après avoir entré une valeur dans la cellule je la supprime, la macro se "coince" je dois l'arrêter et le nom précédemment saisi dans la cellule reste comme nom de feuille.
Une idée ? un correctif est il possible ?
Merci
 

Marc L

XLDnaute Occasionnel
et si j'efface B2 nom de feuille revient à AH1
Pourquoi ne l'as-tu pas fait toi-même en remplaçant Me.CodeName par [AH1].Value ?‼
Et puis donner les explications au compte-gouttes …

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
     With Target
        If .Address = "$B$2" Then Me.Name = IIf(.Value > "", .Value, [AH1].Value)
    End With
End Sub
_______________________________________________________________________________
Merci de cliquer sur J'aime ce post en bas à gauche de chaque message ayant aidé …

 

pepeye66

XLDnaute Nouveau
Re : Attribuer à feuille excel le contenu d'une cellule de cette feuille

Pourquoi ne l'as-tu pas fait toi-même en remplaçant Me.CodeName par [AH1].Value ?‼
Et puis donner les explications au compte-gouttes …

Je ne l'ai pas fait moi même parce que je suis totalement néophyte en macro et VBA ! même si je commence à m'instruire sur le sujet je suis loin de comprendre les subtilités proposées (entre autre la différence entre ta macro et celle de thebenoit59 alors que toutes les deux fonctionnent à merveille.)
Quant aux explications au compte goutte, eh bien c'est juste qu'au début je les pense suffisantes (ne pas noyer dans trop de précisions/explications) et qu'au fur et à mesure des réponses je me rends compte qu'il me faut préciser...ou bien m'orienter vers une autre voie (c'est le cas pour la cellule AH1 que je n'avais pas envisagée au début).

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
     With Target
        If .Address = "$B$2" Then Me.Name = IIf(.Value > "", .Value, [AH1].Value)
    End With
End Sub
_______________________________________________________________________________

Ta macro fonctionne bien et je vais essayer de la comprendre même si, pour le moment, je n'en ai pas la capacité.
Merci de cliquer sur J'aime ce post en bas à gauche de chaque message ayant aidé …


Encore merci et peut être à bientôt,
;)
 

Discussions similaires

Réponses
6
Affichages
210

Statistiques des forums

Discussions
312 321
Messages
2 087 266
Membres
103 501
dernier inscrit
talebafia