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.
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
-
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-
-
@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 -
@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 -
@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. -
@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.
-
-
as-tu essayé
str = ActiveCell.Value ? -
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)