Segundo nombre de la hoja

19/06/2004 - 19:40 por Jesús Román | Informe spam
Hola Amigos:
Tengo una macro creada que deseo utilizar en distintos libros
El problema es que en mi macro, que es creada mediante grabacion, denomina a
las hojas por el nombre que tiene en la solapa.
Lo que trato es de que la macro en lugar de ir a la hoja "BBVA" valla a la
primera hoja de la izquierda del libro, pues no en todos los libros esa hoja
se denomina BBVA. Tambien me surgirá el problema de que no todos los libros
tienen la misma cantidad de hojas por lo cual me temo que la macro me
dará error, por lo tanto necesitaria saber la formula de decirle a la macro
que cuando no exista esa hoja que continue sin mostrar error. Para que esto
quede mas claro, la macro va a la primera hoja de la izquierda y luego a la
segunda, etc., en los libros hay distinta cantidad de hojas, cuando llegue a
la última que salte al siguiente paso de la macro olvidandose de seguir
buscando hojas.

He creado distintas macros y me va bien tal como lo llevo, no obstante, como
se que es un trabajo mal hecho, espero que me puedan ayudar y asi aprender
para la proxima macro quede mas maja.
Muchas gracias.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
19/06/2004 - 23:20 | Informe spam
hola, Jesús !

... que la macro ... vaya a la primera hoja de la izquierda del libro [...]



puedes usar el 'indice' [o 'posicion' de una hoja 'dentro' de un libro [p.e.]...
el objeto 'Worksheets' se refiere 'exclusivamente' a hojas de calculo.
el objeto 'Sheets' incluye [si las hubiera] hojas de grafico y 'otro tipo' de hojas.
[ActiveWorkbook.]Worksheets(1) o 'simplemente' Worksheets(1)

... no todos los libros tienen la misma cantidad de hojas [...]



puedes 'contar' las hojas [Worksheets o Sheets] que hay en el libro con...
Worksheets.Count o... Sheets.Count

... decirle a la macro que ... a la primera hoja ... a la segunda ... cuando llegue a la ultima que salte al siguiente paso [...]



Dim Indice As Integer
For Indice = 1 To Worksheets.Count
Worksheets(Indice)
' aqui lo que haga en cada hoja [Worksheet o... ¿Sheet?] '
Next

saludos,
hector.
Respuesta Responder a este mensaje
#2 Jesús Román
20/06/2004 - 08:20 | Informe spam
He conseguido averiguar algo mediante la ayuda. He visto que la hoja primera
de la izquierda me la denomina como worksheets(5), pero no consigo encuadrar
eso en mi macro. Una de las lineas a moficar seria la siguiente:
ActiveCell.FormulaR1C1 = "»VA!R[2]C[-1]"
Donde bbva sería la hoja en cuestion.
saludos.-


"Jesús Román" escribió en el mensaje
news:6U_Ac.1054952$
Hola Amigos:
Tengo una macro creada que deseo utilizar en distintos libros
El problema es que en mi macro, que es creada mediante grabacion, denomina


a
las hojas por el nombre que tiene en la solapa.
Lo que trato es de que la macro en lugar de ir a la hoja "BBVA" valla a la
primera hoja de la izquierda del libro, pues no en todos los libros esa


hoja
se denomina BBVA. Tambien me surgirá el problema de que no todos los


libros
tienen la misma cantidad de hojas por lo cual me temo que la macro me
dará error, por lo tanto necesitaria saber la formula de decirle a la


macro
que cuando no exista esa hoja que continue sin mostrar error. Para que


esto
quede mas claro, la macro va a la primera hoja de la izquierda y luego a


la
segunda, etc., en los libros hay distinta cantidad de hojas, cuando llegue


a
la última que salte al siguiente paso de la macro olvidandose de seguir
buscando hojas.

He creado distintas macros y me va bien tal como lo llevo, no obstante,


como
se que es un trabajo mal hecho, espero que me puedan ayudar y asi aprender
para la proxima macro quede mas maja.
Muchas gracias.



Respuesta Responder a este mensaje
#3 fernando
20/06/2004 - 19:18 | Informe spam
La numeración de las hojas es por el orden de creación (salvo que Héctor
diga otra cosa ;-)), por lo tanto no creo que puedas utilizar Sheets(1) para
ir a la primera hoja en el ordenamiento. ¿No puedes referirte a la hoja por
su nombre?

"Jesús Román" escribió en el mensaje
news:6U_Ac.1054952$
Hola Amigos:
Tengo una macro creada que deseo utilizar en distintos libros
El problema es que en mi macro, que es creada mediante grabacion, denomina


a
las hojas por el nombre que tiene en la solapa.
Lo que trato es de que la macro en lugar de ir a la hoja "BBVA" valla a la
primera hoja de la izquierda del libro, pues no en todos los libros esa


hoja
se denomina BBVA. Tambien me surgirá el problema de que no todos los


libros
tienen la misma cantidad de hojas por lo cual me temo que la macro me
dará error, por lo tanto necesitaria saber la formula de decirle a la


macro
que cuando no exista esa hoja que continue sin mostrar error. Para que


esto
quede mas claro, la macro va a la primera hoja de la izquierda y luego a


la
segunda, etc., en los libros hay distinta cantidad de hojas, cuando llegue


a
la última que salte al siguiente paso de la macro olvidandose de seguir
buscando hojas.

He creado distintas macros y me va bien tal como lo llevo, no obstante,


como
se que es un trabajo mal hecho, espero que me puedan ayudar y asi aprender
para la proxima macro quede mas maja.
Muchas gracias.



Respuesta Responder a este mensaje
#4 Héctor Miguel
21/06/2004 - 02:16 | Informe spam
hola, Jesús !

... He visto que la hoja primera de la izquierda me la denomina como worksheets(5) [...]



si la primer hoja que 'puedes ver' [la hoja mas a la izquierda] en la interfase de usuario...
por codigo es 'localizada' como 'Worksheets(5)'... significa que...
'existen' cuatro hojas de calculo =>antes<= [seguramente 'ocultas' en la interfase de usuario]
- para 'recorrer/avanzar' por las hojas de un libro... puedes utilizar sus 'nombres' o sus 'indices'
el nombre lo puede modificar el usuario... el indice es 'el orden' que ocupa en el libro =>'visible' o no< [ya sabes... Worksheets = 'hojas de calculo' Sheets = 'todo tipo de hoja' Charts = 'hojas de grafico']
- para 'seleccionar' [alg]una de las hojas de un libro... =>debe<= estar 'visible'
- para seleccionar una celda o rango de celdas... es necesario que...
1.- la hoja 'activa' [y por ende... 'visible'] =>sea del tipo Worksheet< 2.- la seleccion 'activa/actual'... =>sea del tipo Range<= ...si esta seleccionado un objeto grafico... \×|×/ :((

... Una de las lineas a moficar seria la siguiente:
ActiveCell.FormulaR1C1 = "»VA!R[2]C[-1]" ... Donde bbva seria la hoja en cuestion.



aqui, vamos 'por partes' :))
1.- ActiveCell
=>supone<= que la hoja 'activa-visible' es de tipo 'Worksheet' y la seleccion actual es de tipo 'Range'
2.- FormulaR1C1
['cumplido' lo anterior] 'deposita' una formula usando [en el lenguaje de la macro] la 'notacion' #_fila #_columna
3.- "»VA!R[2]C[-1]" <=la formula que 'deposita' la macro EN la celda activa es...
una referencia a la hoja 'BBVA' [que =>supone<= que 'existe' una hoja con ese nombre]
y a la celda [de BBVA] que se encuentra dos filas 'abajo' y una columna 'a la izquierda' de la celda 'activa'
[p.e.] si en la hoja 'activa' que se esta afectando, la celda 'activa' es 'H5'... R[2] 'pasa' a 7 y C[-1] 'regresa' a 'G'
la formula 'resulante' seria: »VA!$G$7
=>si la celda 'activa' corresponde a la columna 'A'... la parte de la columna [en la formula] 'C[-1]' FALLARA :((<
saludos,
hector.
Respuesta Responder a este mensaje
#5 Héctor Miguel
21/06/2004 - 02:33 | Informe spam
'fe de errata' :((

la linea...
2.- la seleccion 'activa/actual'... =>sea del tipo Range<= ...si esta seleccionado un objeto grafico... \×|×/ :((


NO 'va' en la 'seccion' de...
- para seleccionar una celda o rango de celdas... es necesario que...


sino 'despues' de...
1.- ActiveCell
=>supone<= que la hoja 'activa-visible' es de tipo 'Worksheet' y la seleccion actual es de tipo 'Range'



[perdon] ;)
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida