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 FEUILLESerait 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 SubJe joins également mon essai.
Cordialement.
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 SubRe,
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