IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

renommer un range


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Par défaut renommer un range
    bonjour

    je fait appel à vous car je cherche un code simple.

    en fait je souhaite renommer des ranges en m'aidant de l'ancien nom, voila ce que j'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("rangeAC").Name="rangeACnew"
    mais ça n'a pas l'air de fonctionner correctement car le range nomrange existe toujours quand je vais dans insertion>>nom>>définir.

    est-ce que je suis obligé de passer par un code de ce genre ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        ActiveWorkbook.Names("rangeAC").Delete
     
        Range("A1:C1").Select
        ActiveWorkbook.Names.Add Name:="rangeACnew", RefersToR1C1:= _
            "=Feuil1!R1C1:R1C3"
    il est pas très compliqué en soi, mais il ne correspond pas entièrement à mon besoin.

    en effet,j'ai besoin de récupérer la plage du range "rangeAC" pour l'affecter au nouveau range. Ce que je veux dire c'est que ca ne sera pas forcemment A1:C1

    Vous voyez ?

    merci

  2. #2
    Membre Expert
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Par défaut
    Bonjour,
    Il suffit de récupérer la propriété RefersToR1C1 avant de supprimer l'ancien nom :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        ActiveWorkbook.Names.Add Name:="rangeACnew", RefersToR1C1:= ActiveWorkbook.Names("rangeAC").RefersToR1C1
        ActiveWorkbook.Names("rangeAC").Delete

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Il te faut juste supprimer l'ancien pour que le nouveau soit actif (les deux faisant référence à la même plage) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Range("rangeAC").Name = "rangeACnew"
    ActiveWorkbook.Names("rangeAC").Delete
    ou alors, passer par une variable String :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim Adr As String
     
    Adr = Range("rangeAC").Address
    ActiveWorkbook.Names("rangeAC").Delete
    Range(Adr).Name = "rangeACnew"
    Hervé.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Par défaut
    super c'est tout simple !

    les deux codes fonctionnent, j'ai une petite préférence pour le premier

    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [] [Réseau] Renommer des fichiers dans un site FTP
    Par JerBi dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 22/08/2003, 00h35
  2. Renommer un repertoire
    Par Sitas dans le forum Langage
    Réponses: 5
    Dernier message: 14/08/2002, 11h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo