Récupérer le nom d'une cellule

[Fermé]
Signaler
Messages postés
10
Date d'inscription
lundi 21 juillet 2008
Statut
Membre
Dernière intervention
8 mars 2009
-
 gégélabasse -
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.

3 réponses

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
Messages postés
10
Date d'inscription
lundi 21 juillet 2008
Statut
Membre
Dernière intervention
8 mars 2009
> ddez
d'accord. je vais voir ça.
merci de toute façon.
et désolé pour le dérangement.
>
Messages postés
10
Date d'inscription
lundi 21 juillet 2008
Statut
Membre
Dernière intervention
8 mars 2009

Y'a pas de mal,
Si on répond, c'est que ca ne dérange pas ;)
Bon courage
>
Messages postés
10
Date d'inscription
lundi 21 juillet 2008
Statut
Membre
Dernière intervention
8 mars 2009

Au 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
Messages postés
10
Date d'inscription
lundi 21 juillet 2008
Statut
Membre
Dernière intervention
8 mars 2009
> ddez
non j'ai vraiment besoin du nom pas de l'adresse ni du contenu.
c'est bizarre que ça ne marche pas et encore j'ai rien trouvé sur internet à part ".name.name" qui ne marche pas non plus.
MsgBox Range(cellule).Address() retourne $B$5 si cellule est égal à B5 et $B$5:$B$6 si B5:B6
Attention il faut borner par un guillemet la valeur réelle de cellule donc par exemple "B5:B6".

Uniquement dans le cas d'une cellule nommée (Menu: Insertion/Nom/Définir):
1) créez celluleNom pour définir B5:B6
2) MsgBox Range("B5:B6").Name retourne à l'identique à ci-dessus
3) MsgBox Range("B5:B6").Name.Name retourne celluleNom

Attention: Petit rappel pour la compréhension des néophites, ces exemples s'utilisent dans une macro en vba.

Comme il est précisé par ddez, il faudra traiter les erreurs.
as-tu essayé
str = ActiveCell.Value ?
Messages postés
10
Date d'inscription
lundi 21 juillet 2008
Statut
Membre
Dernière intervention
8 mars 2009

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)!
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)
Messages postés
10
Date d'inscription
lundi 21 juillet 2008
Statut
Membre
Dernière intervention
8 mars 2009

oui je l'ai essayé mais ça donne rien.
juste une erreur "Application-defined or object-defined error"