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

[Résolu]Modifier l'étendue d'un nom en VBA

  • Initiateur de la discussion Initiateur de la discussion mamyfik
  • 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 !

M

mamyfik

Guest
Bonjour à tous!

Tout est dans le titre!

Je voudrais savoir si il est possible de modifier "l'étendue" ou "zone" d'un nom, c'est-à-dire la zone à laquelle il s'étend, en VBA.

Par exemple dans la feuille "UneFeuille", on aurait une plage de cellules nommée "Plage" et dont l'étendue serait "UneFeuille". Je voudrais modifier cette étendue pour qu'elle soit "Classeur" afin que "Plage" soit accessible dans tout le classeur sans spécifier "UneFeuille!Plage" mais en mettant juste "Plage". Et faire ceci en VBA bien sûr!
Serait-ce possible?

Voilà, j'espère avoir été clair! :/

Merci à vous!
 
Dernière modification par un modérateur:
Re : Modifier l'étendue d'un nom en VBA

Bonjour,
en fait c'est pas très clair..
si dans ta feuille "UneFeuille" tu as une range qui s'appelle "plage"
pour redimensionner cette plage, tu as plusieurs solutions selon ton besoin: exemple, en utilisant range("Plage").resize(lig, col)
ensuite.. si tu veux étendre cette plage à toute la feuille.... pourquoi ne pas utiliser directement le nom de cette feuille? Sheets("UneFeuille")
pour étendre ensuite à tout le classeur.. utilise le nom du classeur. tout simplement? workbook("Nomduclasseur")

Pour finir. avec un fichier exemple, ca permettrait de mieux cerner ton souci
 
Re : Modifier l'étendue d'un nom en VBA

Bonjour mamyfik, vgendron,

Voyez le fichier joint et cette macro dans le code de la feuille :

Code:
Private Sub OptionButton1_Change()
On Error Resume Next
Me.Names("Plage").Delete
ThisWorkbook.Names("Plage").Delete
IIf(OptionButton1, Me, ThisWorkbook).Names.Add _
  "Plage", Range("A2", [A65536].End(xlUp))
ActiveCell.Activate
End Sub
Le nom Plage est défini soit dans la feuille soit dans le classeur.

A+
 

Pièces jointes

Re : Modifier l'étendue d'un nom en VBA

Hello tous..
et merci Job.. d'une: je n'avais donc pas compris la question, de deux, je n'avais jamais vu qu'on pouvait modifier l'étendue d'une plage nommée..
je dormirai encore moins bete ce soir..;-)
 
Re : Modifier l'étendue d'un nom en VBA

Bonjour mamyfik, le fil,

Je suis peut être à côté de la plaque.

Mais peut être en passant par des plages nommées.

Voir exemple joint. Ces plages s'adapteront automatique au fur et à mesure de l'ajout de nouvelles données.
Corollaire, il faut une clé primaire. Dans mon exemple, la première colonne (N°) doit toujours être remplie.
Pour voir le fonctionnement des plages nommées, va dans le menu Insertion/Nom/définir (Excel 2003).
Ces plages peuvent être réutilisées dans des USF, par exemple.

En espérant que cela dépanne.

Abel.

Edit : oups pas rafraichi ... Tiens, belle solution pour le faire par macro.
 

Pièces jointes

Dernière édition:
Re : Modifier l'étendue d'un nom en VBA

Merci beaucoup pour vos réponses!
Mr Job, c'est nikel avec ce que tu me montres 🙂 c'est ce que je voulais faire.
Désolé de pas avoir été super super clair!

Merci à tous!

Sujet amplement résolu.
 
Re : Modifier l'étendue d'un nom en VBA

Re,

Le nom Plage peut être défini par une formule (quelconque) qu'on mémorise :

Code:
Private Sub OptionButton1_Change()
Dim nom1 As Name, nom2 As Name, formule As String
On Error Resume Next
Set nom1 = Me.Names("Plage"): Set nom2 = Me.Parent.Names("Plage")
formule = nom1.RefersTo: nom1.Delete
formule = nom2.RefersTo: nom2.Delete
IIf(OptionButton1, Me, Me.Parent).Names.Add "Plage", formule
ActiveCell.Activate
End Sub
Fichier (2).

A+
 

Pièces jointes

- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
877
T
  • Résolu(e)
Microsoft 365 pb effacement macro
Réponses
8
Affichages
795
Themax
T
Réponses
4
Affichages
744
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…