Macro: définir une plage nommée

Bonjour à tous,

Je cherche à réaliser une macro qui me permettrait de définir une plage nommée sur toutes les cellules sous la cellule sélectionnée. Et qui aurait pour nom, le contenu de la cellule sélectionnée lors du lancement de ma macro.

J'ai essayé ceci:

Option Explicit

Sub Definition_plage()
'
' Definition_plage Macro
'
' Touche de raccourci du clavier: Ctrl+w

Dim Nom_plage As String
Dim Plage As Range

    Nom_plage = ActiveCell.Formula
    Set Plage = Range(Selection, ActiveCell.End(xlDown))

    ActiveWorkbook.Names.Add Name:=Nom_plage, RefersToR1C1:=Plage

    ActiveWorkbook.Names("Nom_plage").Comment = ""

End Sub

Malheureusement cela me renvois une erreur:

erreur

Quelqu'un peut-il m'aider ?

Merci d'avance !

Bonjour,

Essaie ainsi :

Option Explicit
Sub Definition_plage() '
' Definition_plage Macro'
' Touche de raccourci du clavier: Ctrl+w
Dim Nom_plage As String
Dim Plage As Range
    Nom_plage = Application.Substitute(Trim(ActiveCell), " ", "_")
    Set Plage = Range(Selection, ActiveCell.End(xlDown))
    ActiveWorkbook.Names.Add Name:=Nom_plage, RefersTo:=Plage
    Set Plage = Nothing
End Sub

Merci beaucoup ça fonctionne !

Par contre j'ai pas compris toutes toutes les fonctionnalités de la lignes ajoutées

Est-ce que je peux avoir un petit mot d'explication ?

Merci d'avance

Re,

Tu as certaines contraintes pour les noms.

TRIM supprime les espaces inutiles de gauche et de droite pouvant être présents.

SUBSTITUTE remplace les espaces par un tiret bas (underscore).

Cdlt.

capture
Rechercher des sujets similaires à "macro definir plage nommee"