Como leer el nombre de una celda?

18/08/2003 - 16:56 por Rene Moreno | Informe spam
Hola grupo, a ver si alguien me puede ayudar.
Como puedo obtener el nombre asignado a una celda,
por ejemplo si la celda "A1" tiene el asignado el nombre
"celda1" como puedo saber ese nombre mediante código,
ya intente con "If Range("A1").Name="celda1" then" pero
no funciona porque "Range("A1").Name" devuelve "$A$1"
De antemano gracias a quien pueda ayudarme

Atte. Rene Moreno
"La imaginación es mas importante que el conocimiento"
A.E.

Preguntas similare

Leer las respuestas

#6 rasputin
19/08/2003 - 19:44 | Informe spam
¿Y no sería más correcto, ver los nombres que tenemos creados y mirar a qué
celda pertenecen?
Tened en cuenta que el número de nombres suele ser menor que el de celdas
casi siempre.

abcdef



"Fernando Arroyo" escribió en el mensaje
news:
Pienso que la clave del problema está en el fragmento de la ayuda de Excel
que puso abcde en este mismo hilo: "Aunque un objeto Range puede tener más
de un nombre, no hay un conjunto Names para el objeto Range."

Si existiera ese conjunto Names del objeto Range, se podría averiguar su
número mediante la propiedad Count que tienen todos los conjuntos. Pero como
no existe el conjunto, hay que intentar acceder directamente, "sin red".
Entonces pueden suceder dos cosas:
- si el rango tiene al menos un objeto Name que haga referencia a él, se
logrará acceder a dicho objeto (o al primero de ellos según su orden
alfabético, si son varios) sin problemas.
- si el rango no tiene ningún objeto Name se producirá el error 1004.

La única forma que yo conozco de prevenir este error es escribiendo una
captura de errores, algo como:

On Error GoTo captura
MsgBox ActiveCell.Name.Name
On Error GoTo 0
Exit Sub
captura:
If Err.Number = 1004 Then MsgBox "La celda " & ActiveCell.Address & " no
está incluída en ningún objeto Name."

En cualquier caso, si pones el código que te está dando problemas es posible
que podamos "afinar" un poco más la posible solución.
Un saludo.


Fernando Arroyo
MS MVP - Excel


"Pepito" escribió en el mensaje
news:07ca01c36601$281e4a20$
Hola Fernando,
Pero si un rango no tiene al menos un nombre definido pues
me da error 1004 ok? Hay algo que comprobar primero ?
Toi turbao ;-((
Pepito


Tienes que usar dos veces Name:

If Range("A1").Name.Name = "celda1" Then ...

El primer Name devuelve el primer objeto Name que hace


referencia a la celda (ojo con esto, porque si hay más de
uno devolverá siempre el primero), mientras que el segundo
Name es la propiedad Name de dicho objeto. Es un poco
complicado de explicar, pero verás que funciona.
Un saludo.


Fernando Arroyo
MS MVP - Excel

"Rene Moreno" escribió en


el mensaje news:%23$
Hola grupo, a ver si alguien me puede ayudar.
Como puedo obtener el nombre asignado a una celda,
por ejemplo si la celda "A1" tiene el asignado el nombre
"celda1" como puedo saber ese nombre mediante código,
ya intente con "If Range("A1").Name="celda1" then" pero
no funciona porque "Range("A1").Name" devuelve "$A$1"
De antemano gracias a quien pueda ayudarme

Atte. Rene Moreno
"La imaginación es mas importante que el conocimiento"
A.E.




.

Respuesta Responder a este mensaje
#7 Fernando Arroyo
19/08/2003 - 19:53 | Informe spam
"rasputin" escribió en el mensaje news:eJT$
¿Y no sería más correcto, ver los nombres que tenemos creados y mirar a qué
celda pertenecen?
Tened en cuenta que el número de nombres suele ser menor que el de celdas
casi siempre.

abcdef




Pienso que no sería mejor. El código que he puesto es bastante rápido porque no le afecta el número de nombres creados, pero sin embargo para revisar los nombres habría que recorrerlos uno por uno, sea cual sea su número, puesto que no sabemos cual incluye la celda. Ten en cuenta que no se trata de saber los nombres que afectan a todas las celdas, sino tan sólo a una en concreto.

Otra cosa sería que hubiera que saber _todos_ los nombres que incluyen la celda. En ese caso, no quedaría más remedio que recorrer la colección Names completa.
Un saludo.


Fernando Arroyo
MS MVP - Excel




"Fernando Arroyo" escribió en el mensaje
news:
Pienso que la clave del problema está en el fragmento de la ayuda de Excel
que puso abcde en este mismo hilo: "Aunque un objeto Range puede tener más
de un nombre, no hay un conjunto Names para el objeto Range."

Si existiera ese conjunto Names del objeto Range, se podría averiguar su
número mediante la propiedad Count que tienen todos los conjuntos. Pero como
no existe el conjunto, hay que intentar acceder directamente, "sin red".
Entonces pueden suceder dos cosas:
- si el rango tiene al menos un objeto Name que haga referencia a él, se
logrará acceder a dicho objeto (o al primero de ellos según su orden
alfabético, si son varios) sin problemas.
- si el rango no tiene ningún objeto Name se producirá el error 1004.

La única forma que yo conozco de prevenir este error es escribiendo una
captura de errores, algo como:

On Error GoTo captura
MsgBox ActiveCell.Name.Name
On Error GoTo 0
Exit Sub
captura:
If Err.Number = 1004 Then MsgBox "La celda " & ActiveCell.Address & " no
está incluída en ningún objeto Name."

En cualquier caso, si pones el código que te está dando problemas es posible
que podamos "afinar" un poco más la posible solución.
Un saludo.


Fernando Arroyo
MS MVP - Excel


"Pepito" escribió en el mensaje
news:07ca01c36601$281e4a20$
Hola Fernando,
Pero si un rango no tiene al menos un nombre definido pues
me da error 1004 ok? Hay algo que comprobar primero ?
Toi turbao ;-((
Pepito


>Tienes que usar dos veces Name:
>
>If Range("A1").Name.Name = "celda1" Then ...
>
>El primer Name devuelve el primer objeto Name que hace
referencia a la celda (ojo con esto, porque si hay más de
uno devolverá siempre el primero), mientras que el segundo
Name es la propiedad Name de dicho objeto. Es un poco
complicado de explicar, pero verás que funciona.
>Un saludo.
>
>
>Fernando Arroyo
>MS MVP - Excel
>
>"Rene Moreno" escribió en
el mensaje news:%23$
>> Hola grupo, a ver si alguien me puede ayudar.
>> Como puedo obtener el nombre asignado a una celda,
>> por ejemplo si la celda "A1" tiene el asignado el nombre
>> "celda1" como puedo saber ese nombre mediante código,
>> ya intente con "If Range("A1").Name="celda1" then" pero
>> no funciona porque "Range("A1").Name" devuelve "$A$1"
>> De antemano gracias a quien pueda ayudarme
>>
>> Atte. Rene Moreno
>> "La imaginación es mas importante que el conocimiento"
>> A.E.
>>
>>
>.
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida