Récupérer le nom d'une cellule

Bonjour,

je veux récupérer le nom d'une cellule! c simple je pense! j'ai cherché sur intenet, ils disent que je dois utiliser ".name.name" mais ça ne fonctionne pas. j cette erreur là : "Application-defined or object-defined error" "runtime error 1004"!
j'ai déja ouvert un workbook.
voici mon code:

Dim str As String
For Each sheet In ActiveWorkbook.Sheets
For Each cell In ActiveSheet.Cells
str = cell.name.name
MsgBox str
Next cell
Next sheet

j'ai cherché sur google avant de poder ma question mais j que le ".name.name"!!!
aidez-moi svp.c urgent
merci bcp.
Configuration: Windows XP
Firefox 2.0.0.16

3 réponses

  1. Oui effectivement, ca marche pas.
    Enfin ca provoque une erreur si la cellule n'a pas été nommée.
    Et c'est bien :
    Range("A1").Name.Name

    La seule chose qu'il te reste à faire est donc de traiter l'erreur :
    Sub listeNames()
    
        For Each cellule In ThisWorkbook.Sheets(1).Range("A1:A10").Cells
            On Error Resume Next
            MsgBox (cellule.Name.Name)
            On Error GoTo 0
        Next cellule
    
    End Sub
    
    0
    1. salut ddez,
      merci pour vos réponses.
      j'ai copié votre code après avoir ouvert ma feuille excel mais il ne m'affiche qu'un message vide une seule fois!
      c bizarre.
      je ne comprends rien là!
      merci en tout cas.
      -1
    2. @rbourichaEn fait j'aimerai savoir si on parle bien de la même chose.
      La propriété Range("").Name.Name renvoie le nom d'un groupe de cellules.
      Pour nommer un groupe de cellule, il faut :
      - soit le sélectionner et entrer une valeur dans la "zone nom" (c'est la zone en haut à gauche de la barre de fonctions où se trouve en général l'adresse de la zone)
      - soit le sélectionner et aller dans "Insertion/Nom/Définir" et entrer sa valeur.

      Ainsi on peut récuperer cette zone avec la commande suivante :
      Range("maZone") 'où maZone est le nom donné
      

      Normalement, si il y a des cellules nommées, le code que j'ai posté tout a l'heure doit marcher.

      Par contre, si les noms cherchés concernent plusieurs cellules groupées, la c'est différent...
      On peut les lister avec cette fonction :
      Sub listeZones()
          For Each nom In ActiveWorkbook.Names
              MsgBox ("zone[" & nom.Name & "] : " & Range(nom).Address)
          Next nom
      End Sub
      
      0
    3. @rbourichaAu fait, si c'est l'adresse de la cellule que tu veux récupérer, c'est tout simplement ca :
      Dim cellule as Range
      Set cellule=Range("B2")
      MsgBox cellule.address 'affiche B2
      
      0
    4. @ddezmerci pour tout,
      en fait je cherche bien ce que vous avez indiqué, c'est bien le nom qui se trouve en haut à gauche.
      mais il m'affiche qu'un seul message vide comme je vous ai dit tout à l'heure.
      et elles ne sont pas toutes des cellules groupées.
      il y a plusieurs cellules indépendantes et des cellules fusionnées aussi.
      -1
    5. @rbourichaLa ca devient super complexe car le code suivant
      cellule.Name.Name
      ne fonctionne que si cellule représente la zone exacte qui est nommée.
      0
  2. as-tu essayé
    str = ActiveCell.Value ?
    0
    1. non Pawn.ça ne me donne rien dans le msgbox.c vide.
      en plus moi j besoin du nom de la cellule et non de sa valeur(ou son contenu)!
      -1
  3. Salut,

    As tu essayé :
    str = cell.name

    (Oublie pas de mettre un point d'arret si tu n'as pas envie de cliquer sur "OK" 49744125 fois)
    -1
    1. oui je l'ai essayé mais ça donne rien.
      juste une erreur "Application-defined or object-defined error"
      -1