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 :

Trouver le nom d'une cellule [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 203
    Par défaut Trouver le nom d'une cellule
    Bonjour à tous

    Je voudrai nommer et renommer les cellules d'une plage spécifique à partir de leur valeur:
    exemple, nommer A1:E5 avec leur nom, A1,B1... D5,E5

    Facile s'il n'y a pas de nom déjà associé!
    Mais si une cellule a déjà un nom, il faut au préalable faire un delete pour la renommer.

    La propriété Name
    donne une erreur appli sur une cellule NON nommée...

    D'où ma question:
    Comment peut-on savoir si une cellule particulière a un nom?

  2. #2
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    attention, c'est radical !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub EffaceTout()
    Dim Nme As Name
        For Each Nme In ActiveWorkbook.Names
            Nme.Delete
        Next Nme
    End Sub

    Cordialement,

    Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue, et chaque action vous rapporte des points

    Didier

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    On Error Resume Next
    Var = Range("C2").Name.Name
    If Err.Number <> 0 Then
        Err.Clear
        Range("C2").Name = "Toto"
    End If

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 203
    Par défaut
    Merci Ormonth,
    mais je veux être sélectif!

    C'est Daniel qui a raison,
    Je n'ai pas l'habitude de gérer les erreurs...
    En fait, on se dit qu'avoir une erreur est anormal et on cherche autre chose!

    Voici le code complet, si cela peut servir à quelqu'un.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Sub NomCellPlage()
        Dim Table As String
        Dim nom As String
        Dim c As Range
     
        Table = InputBox("Table à nommer :", "Nommage", "A1:B5")
        For Each c In ActiveSheet.Range(Table)
            On Error Resume Next
            nom = c.Name.Name
            If Err.Number <> 0 Then
                Err.Clear
            Else
                'Supprime le nom
                c.Name.Delete
            End If
            'Nomme la cellule
            If c.Value <> "" Then
                c.Name = "Vm." & c.Text
            End If
        Next c
    End Sub

  5. #5
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For Each c In ActiveSheet.Range(Table)
        On Error Resume Next
        c.Name.Delete
        On Error GoTo 0
        If c.Value <> "" Then c.Name = "Vm." & c.Text
    Next c

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Sans le gestionnaire d'erreurs et en considérant q'une plage peut avoir plusieurs noms, la macro suivante supprime tous les noms correspondant à la plage et en recrée un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim N As Name
    For Each N In ActiveWorkbook.Names
        If Right(N.RefersTo, Len(N.RefersTo) - 1) = ActiveSheet.Name & "!" & [C2].Address Then
            N.Delete
        End If
    Next N
    Range("C2").Name = "Toto"

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

Discussions similaires

  1. Trouver le Nom d'une cellule
    Par justgreat dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 23/10/2010, 02h21
  2. [reseaux] [PERL] Trouver le nom d'une machine à partir d'une adresse IP
    Par LE NEINDRE dans le forum Programmation et administration système
    Réponses: 6
    Dernier message: 16/09/2008, 15h17
  3. VBA_Excel-Pb pour trouver un nom dans une cellule
    Par martiweb dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 01/06/2007, 00h04
  4. [VBA] Enregistrer un classeur avec le nom d'une cellule
    Par zouille dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/10/2006, 19h16
  5. Trouver la position d'une cellule
    Par foobar42 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 10/07/2006, 18h00

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