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. 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. oui je l'ai essayé mais ça donne rien.
      juste une erreur "Application-defined or object-defined error"
  2. 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
    
    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.
    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
      
    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
      
    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.
    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.
  3. as-tu essayé
    str = ActiveCell.Value ?
    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)!