Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

définir un nom par macro

  • Initiateur de la discussion Initiateur de la discussion Blafi
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Blafi

XLDnaute Occasionnel
Rebonjour à tous,

J'ai un pb de macro si quelqu'un peut m'aider...

J'utilise une base de données qui est dans une feuille "base" que j'ai mise dans un classeur. Pour pouvoir l'utiliser dans des recherches, j'ai besoin de définir, grace à une macro, un nom pour 2 zones, l'une "LesNoms" et l'autre "LaBase".

Sachant que cette base est récupérée à l'origine par copie d'une feuille dans un autre classeur, les noms à attribuer ne feront jamais référence à la même étendue de zone puisque la longueur de la base varie à chaque fois.

J'ai tenté d'enregistrer ma macro (macro FixerNoms dans le classeur joint) mais lorsque je regarde ce qui a été enregistré le nom est défini de manière "fixe" (R4C1:R65C1)par référence à la zone actuellement sélectionnée, ce qui ne va pas.

J'ai alors tenté d'écrire une macro en récupérant l'adresse des cellules de début et de fin de zone sélectionnée (macro LaSélection dans le classeur joint).. malheureusement, je n'arrive pas à faire accepter mes variables dans la définition du nom.....
Pouvez-vous m'aider en m'indiquant comment faire ,

Merci d'avance et à bientôt....
 

Pièces jointes

Re : définir un nom par macro

Salut Blafi,
J'ai adapté ton code :
Sub FixerNoms()
'
' FixerNoms Macro
' Macro enregistrée le 07/11/2006 par BRH 6LGM
'
Range("A4").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveWorkbook.Names.Add Name:="LesNoms", RefersTo:=Selection

Range("A4").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
ActiveWorkbook.Names.Add Name:="LaBase", RefersTo:=Selection

@+
RICO
Range("A4").Select
End Sub
 
Re : définir un nom par macro

Bonjour,

utilise cette macro dans ton fichier :

Code:
Sub FixerNoms()
ActiveWorkbook.Names.Add Name:="LesNoms", RefersToR1C1:=Sheets("Base").Range("A4").CurrentRegion
End sub

A te lire

Edition : Désolé Rico j'ai pas rafraichit...

Précision : cette macro est valable pour la feuille "BASE" et nécessite de ne pas avoir de ligne vide dans ta base de données.
 
Dernière édition:
Re : définir un nom par macro

Re,

oups Blafi, je ne t'ai répondu que partiellement essaie plutôt ceci :

Code:
Sub FixerNoms()
ActiveWorkbook.Names.Add Name:="LesNoms", RefersToR1C1:=Sheets("Base").Range("A4", Range("A65536").End(xlUp))
ActiveWorkbook.Names.Add Name:="LaBase", RefersToR1C1:=Sheets("Base").Range("A4").CurrentRegion
end sub

A te lire
 
Re : définir un nom par macro

bonjour à tous

une autre syntaxe possible :

With Sheets("Base")
.Range("A4", .Range("A65536").End(xlUp)).Name = "Lesnoms"
.Range("A4").CurrentRegion.Name = "LaBase"
End With

salut

ps : dan, si je peux me permettre.

ActiveWorkbook.Names.Add Name:="LesNoms", RefersToR1C1:=Sheets("Base").Range("A4", Range("A65536").End(xlUp))

si tu fais référence à la feuille pour la déclaration de zone, il faut me semble-t'il aussi le faire pour la derniere cellule :

ActiveWorkbook.Names.Add Name:="LesNoms", RefersToR1C1:=Sheets("Base").Range("A4", Sheets("Base").Range("A65536").End(xlUp))
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 macro TCD
Réponses
4
Affichages
241
Réponses
4
Affichages
296
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…