Donner un nom à une plage pour l'appeler plus facilement plusieurs fois

Bonjour le forum,

Je pense que mon problème est assez simple mais je n'arrive pas à l'écrire correctement dans mon code. Je souhaiterais donner un nom à une plage de donnée en début de code et utiliser ce nom dans mon code. De cette manière si ma plage change dans ma macro (quelques lignes en plus ou en moins dans le tableau) je puisse ne changer que la plage de donnée de ma référence en gardant le même nom pour que je n'ai pas à rechanger tout dans le code au risque de faire un oubli.

Je ne sais pas si c'est très clair. Je reste disponible si y'a besoin d’éclaircissement.

Je vous remercie d'avance pour votre aide.

Bonjour,

Bonne démarche pour faciliter toute maintenance ultérieure.

Menu --> Formules --> Gestionnaire de noms

Bonjour Philippe, bonjour le forum,

Essaie comme ça :

Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim PL As Range déclare la variable PL (PLage)

Set O = Worksheets("Feuil1") 'définit l'onglet O
Set PL = O.Range("A1:B20") 'définit la plage PL
PL.Name = "MaPlage" 'Nomme la plage PL
Range("MaPlage").Select 'ligne de test pour sélectionner PL
End Sub

Mais tu n'a pas besoin de la nommer à partir du moment où elle est déclarée et définie :

Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim PL As Range déclare la variable PL (PLage)

Set O = Worksheets("Feuil1") 'définit l'onglet O
Set PL = O.Range("A1:B20") 'définit la plage PL
PL.Select 'ligne de test pour sélectionner PL
End Sub

[Édition]

Bonjour Thev, nos post se sont croisés...

Bonjour Thev,

Merci.

j'ai en effet trouvé comment les nommer en VBA en revanche quand je mets le nom dans mon code ça me créé une erreur. Je pense que je le fais mal. Voila un exemple que vous pourrez peut être corriger.

'définir les plages de données

'défini la plage de la matrice
ActiveWorkbook.Names.Add Name:="rgmatr", RefersToR1C1:="=Feuil1!R23C2:R35C6"
ActiveWorkbook.Names("rgmatr").Comment = "" "

et plus loin l'appel où je voudrais remplacer la plage B23:F35 par son nom "rgmatr" comme dans l'exemple suivant. Je pense que ma syntaxe n'est pas correcte car ça ne fonctionne pas.

"Range("B23:F35").Select ' met en forme les bordures des postes"
"Range("rgmatr").Select ' met en forme les bordures des postes

Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders
.Weight = xlThin
End With

Bonjour TauThème,

Merci pour votre code.

Si je comprends bien, je suis obligé de passer par de la déclaration (Dim) et le paramétrage (Set) de mes variable (onglet et plage) pour après pouvoir utiliser "PL" comme nom de ma plage de donnée dans l'onglet.

Re,

la déclaration n'est pas obligatoire mais je la recommande toujours...

Ok super merci pour vos réponses à tous les deux.

Rechercher des sujets similaires à "donner nom plage appeler facilement fois"