Poner nombres a las celdas con macro

27/10/2009 - 16:41 por Robert Blanco | Informe spam
Un gran amigo me sugirió este código, para asignar nombres a
determinadas celdas, de acuerdo a valores que están en otras celdas:

Sub MakeRange()
For i = 1 To 5
nombre = Cells(i, "A") & "_Juegos"
a = ActiveWorkbook.Names.Add(nombre, Sheets(1).Cells(i, "D"))
Next
End Sub

Se supone que los nombres para ser asignados están en A1:A5 y que
deben asignarse a las celdas del rango D1:D5.

Ahora bien, sólo me sirve para asignar el nombre a la última celda.
Cómo se haría para asignar el nombre a todas las celdas.? Me explico
mejor con éste ejemplo. En el rango A1:A5 aparece 3 veces "Paraguay",
entonces el nombre "Paraguay_Juegos" debe ser asignado a las 3 celdas
donde aparece esa palabra, pero éste código sólo asigna a la última
aparición.

Gracias por la ayuda...

Robert
 

Leer las respuestas

#1 Héctor Miguel
28/10/2009 - 04:51 | Informe spam
hola, Robert !

esa es una de las reglas basicas en excel, no puedes usar/tener/crear/... nombres repetidos (p.e.)
no puedes abrir dos libros del mismo nombre
no puedes tener dos hojas del mismo nombre en el mismo libro
no puedes asignar el mismo nombre en dos lugares diferentes de una misma hoja (o sea...)

dentro de un bucle for...next, en una (re)definicion de nombres asignados a celdas/rangos...
cuando algun nombre se repite, "la siguiente" SIEMPRE hara una sustitution de "la anterior"

saludos,
hector.

__ OP __
Un gran amigo me sugirio este codigo, para asignar nombres a determinadas celdas, de acuerdo a valores que estan en otras celdas:

Sub MakeRange()
For i = 1 To 5
nombre = Cells(i, "A") & "_Juegos"
a = ActiveWorkbook.Names.Add(nombre, Sheets(1).Cells(i, "D"))
Next
End Sub

Se supone que los nombres para ser asignados están en A1:A5 y que deben asignarse a las celdas del rango D1:D5.
Ahora bien, solo me sirve para asignar el nombre a la ultima celda. Como se haria para asignar el nombre a todas las celdas.?
Me explico mejor con éste ejemplo. En el rango A1:A5 aparece 3 veces "Paraguay"
entonces el nombre "Paraguay_Juegos" debe ser asignado a las 3 celdas donde aparece esa palabra
pero este codigo solo asigna a la ultima aparicion...

Preguntas similares