Nommer des plages sur la feuille active

Bonjour ,

pour alléger mes codes VBA je voudrais à l'activation d'une feuille nommer des plages et les supprimer au changement de sélection de feuille. Ceci pour appliquer ce code à plusieurs feuilles au nom différents.

    'Nomme les plages à controler , A APPLIQUER SUR LA FEUILLE ACTIVE ( PAS QUE SUR ROSE)

    ActiveWorkbook.Names.Add Name:="BUSrC", RefersToR1C1:="=ROSE!R6C3:R26C3"
    ActiveWorkbook.Names.Add Name:="BUSrH", RefersToR1C1:="=ROSE!R6C8:R30C8"
    ActiveWorkbook.Names.Add Name:="BUSrM", RefersToR1C1:="=ROSE!R6C13:R37C13"
    ActiveWorkbook.Names.Add Name:="BUSrR", RefersToR1C1:="=ROSE!R6C18:R39C18"
    ActiveWorkbook.Names.Add Name:="INDISr", RefersToR1C1:="=ROSE!R32C1:R41C3"
    ActiveWorkbook.Names.Add Name:="GSFr", RefersToR1C1:="=ROSE!R40C6:R41C6"
    ActiveWorkbook.Names.Add Name:="DISr", RefersToR1C1:="=ROSE!R32C8:R41C8"

    ' SUPPRIMER LES PLAGES NOMMEES LORSQUE L'ON QUITTE LA FEUILLE

Serait ce possible ?

Merci pour vos commentaires

Salut,

Essaye en plaçant ce code dans ThisWorkbook (à chaque sélection de feuille, les références des noms sont réactualisées) :

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
 ActiveWorkbook.Names.Add Name:="BUSrC", RefersToR1C1:="=ROSE!R6C3:R26C3"
    ActiveWorkbook.Names.Add Name:="BUSrH", RefersToR1C1:="=ROSE!R6C8:R30C8"
    ActiveWorkbook.Names.Add Name:="BUSrM", RefersToR1C1:="=ROSE!R6C13:R37C13"
    ActiveWorkbook.Names.Add Name:="BUSrR", RefersToR1C1:="=ROSE!R6C18:R39C18"
    ActiveWorkbook.Names.Add Name:="INDISr", RefersToR1C1:="=ROSE!R32C1:R41C3"
    ActiveWorkbook.Names.Add Name:="GSFr", RefersToR1C1:="=ROSE!R40C6:R41C6"
    ActiveWorkbook.Names.Add Name:="DISr", RefersToR1C1:="=ROSE!R32C8:R41C8"
End Sub

Je joins également mon essai.

Cordialement.

23isabellette.zip (6.66 Ko)

Merci , je l'ai adapté comme cela dans le code des feuilles concernées ( je ne veux pas l'avoir sur toutes les feuilles du classeur.

Private Sub Worksheet_Activate()
ActiveWorkbook.Names.Add Name:="Premier", RefersToR1C1:="=" & ActiveSheet.Name & "!R1C1"
    ActiveWorkbook.Names.Add Name:="Deuxième", RefersToR1C1:="=" & ActiveSheet.Name & "!R2C1"

    ActiveWorkbook.Names.Add Name:="BUSrC", RefersToR1C1:="=" & ActiveSheet.Name & "!R6C3: R26C3 "
    ActiveWorkbook.Names.Add Name:="BUSrH", RefersToR1C1:="=" & ActiveSheet.Name & "!R6C8: R30C8 "
    ActiveWorkbook.Names.Add Name:="BUSrM", RefersToR1C1:="=" & ActiveSheet.Name & "! R6C13: R37C13 "
    ActiveWorkbook.Names.Add Name:="BUSrR", RefersToR1C1:="=" & ActiveSheet.Name & "!R6C18: R39C18 "
    ActiveWorkbook.Names.Add Name:="INDISr", RefersToR1C1:="=" & ActiveSheet.Name & "!R32C1: R41C3 "
    ActiveWorkbook.Names.Add Name:="GSFr", RefersToR1C1:="=" & ActiveSheet.Name & "!R40C6: R41C6 "
    ActiveWorkbook.Names.Add Name:="DISr", RefersToR1C1:="=" & ActiveSheet.Name & "! R32C8: R41C8 "
End Sub

Re,

Je vois que dans la précipitation, je t'ai proposé un code pour ton fichier absolument incorrect : désolé

Mais je vois aussi que tu as su adapter mon exemple personnel à tes besoins

Donc tout est bien qui finit bien

Amicalement

Rechercher des sujets similaires à "nommer plages feuille active"