Excel - Cambiar el rango de un nombre

   
Vista:

Cambiar el rango de un nombre

Publicado por Joaquin (11 intervenciones) el 06/03/2013 21:52:50
He creado una macro mediante la ventana de grabar macro, voy tecleando todas las ordenes y cuando ejecuto la macro me crea un rango distinto al que yo he creado y no me he equivocado al teclear las ordenes pues la he repetido varias veces, en concreto este rango es h12:h240 y cuando compruebo en el libro el rango no lo reconoce aunque está en la lista derangos pero sin valores y con una referencia que yo no reconosco.
Pulso F5 para ir al rango y no lo reconoce.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Cambiar el rango de un nombre

Publicado por jcs (494 intervenciones) el 07/03/2013 09:00:18
Muy buenas.

Eso pasa porque has creado un rango relativo, esto es, varía en función de la posición en la que te encuentres. Si quieres siempre ese rango, tienes que poner el símbolo $, es más, conviene poner el nombre de la hoja (salvo que quieras el rango de la hoja en la que te encuentras), así tu nombre tendría que quedar de la siguiente manera:
=Hoja1!$H$1:$H$240

Un saludo. Juanjo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cambiar el rango de un nombre

Publicado por Joaquin joaquingalan5@hotmail.com (11 intervenciones) el 07/03/2013 12:43:19
Te envio la macro para que si puedes me digas donde está el fallo, cuando grabo la macro el nombre y el rango es correcto($H$12:$H$251), sin embargo cuando la ejecuto ya no está el mismo rango sino el siguiente Diferencia{.....}= Repsol 'F12c8':F251c8'.
Repsol es el nombre de la hoja y Diferencia el nombre del rango.

Sub Macro3()
'
' Macro3 Macro
'
' Acceso directo: CTRL+b
'
ActiveWorkbook.Names("Diferencia").Delete
Application.Goto Reference:="R12C8"
ActiveWorkbook.Worksheets("Repsol").Names.Add Name:="Diferencia", _
RefersToR1C1:="=Repsol!R12C8:R22C8"
ActiveWorkbook.Worksheets("Repsol").Names("Diferencia").Comment = ""
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cambiar el rango de un nombre

Publicado por jcs (494 intervenciones) el 08/03/2013 08:06:50
Muy buenas.

Efectivamente, da un error. El problema está en la última línea 'ActiveWorkbook.Worksheets("Repsol").Names("Diferencia").Comment = ""', que está bien escrita, pero que hace que no funcione. De todas formas, esa línea no te sirve para nada, porque lo que haría sería dejar el comentario en blanco, que es como está cuando se crea. Por otra parte, supongo que no estás acostumbrado a referencias del tipo F1C1, por eso es más intuitivo escribirlas usando "RefersTo" , en lugar de "RefersToR1C1". Tampoco te sirve de mucho borrar un nombre, ir a una dirección y volver a crear ese nombre. En principio valdría con volver a definir ese nombre. Por todo eso, yo te aconsejaría la siguiente macro, que además de funcionar es mucho más sencilla de entender y rápida de ejecutar.

Sub Macro4()
ActiveWorkbook.Worksheets("Repsol").Names("Diferencia").RefersTo = _
"=Repsol!$H$12:$H$251"
End Sub

Un saludo. Juanjo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cambiar el rango de un nombre

Publicado por Joaquin joaquingalan5@hotmail.com (11 intervenciones) el 08/03/2013 13:45:31
Te agradesco el tiempo que me has dedicado, pero no se como escribir la macro poque yo la he garbado sin escribirla sino directamente grabando los movimientos en la hoja.
Por cierto mi libro se llama COTIZACIONES y tiene 5 hojas una de ellas se denomina Repsol, debo mantener la macro como me la has enviado o debo de escribir tambien el nombre del libro.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cambiar el rango de un nombre

Publicado por jcs (494 intervenciones) el 08/03/2013 19:12:28
Es suficiente con que la copies y la pegues a continuación del "End Sub" de tu macro3.
Luego ya, cuando compruebes que funciona, puedes borrar la anterior. Puedes entrar en las macros y asociar esta nueva macro a una combinación de teclas o a un botón. Si no quieres liarte, puedes copiar el
ActiveWorkbook.Worksheets("Repsol").Names("Diferencia").RefersTo = _
"=Repsol!$H$12:$H$251"

y copiarlo sustituyendo toda la macro3 anterior desde la 2ª hasta la penúltima fila. La idea es que así te funcionará con CTRL+b

Si no terminas de verlo y quieres mandarme el fichero, ya te hago un botón para que se ejecute.

Un saludo. Juanjo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cambiar el rango de un nombre

Publicado por Joaquin joaquingalan5@hotmail.com (11 intervenciones) el 09/03/2013 12:54:56
Perfecto te he entendido muy bien y me ha servido de gran utilidad.

Gracias nuevamente.

Un Saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar