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

#6 Jesús Román
22/06/2004 - 22:40 | Informe spam
Hola a todos!!!
Antes de nada, pediros disculpa
Mi servidor Terra esta fallando y no me aparecían las respuestas a mi
pregunta.
He cambiado de servidor y esto da gusto... Bueno, tengo que leer todas las
respuestas que me habéis enviado y ver que soluciones me dais así que
luego os contesto a todos uno por uno
Gracias!!!!



"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
#7 Jesús Román
23/06/2004 - 00:50 | Informe spam
Hola de nuevo a todos!
Lamento deciros que nadie ha solucionado mi problema. Lo explico de nuevo a
ver si ahora lo hago mejor, para ello pego al final la macro.
Se trata de que la macro ha sido creada para un libro que tiene las
siguientes hojas: bbva, ele, rep, san, tef y tem
Y el problema es que quiero que esta misma macro me sirva tambien para otros
7 libros, que tienen hojas con nombres distintos a los de la anterior, por
lo cual, habia pensado que en los sitios donde la macro dice por ejemplo
BBVA, pues pusiera sheets(1) y así tendria una macro versatil para todos los
libros.
Es esto posible?

De nuevo agradeceros el enorme interes que habeis tenico en la cuestion y
lamentar no poderos decir que vuestro esfuerzo ha sido todo lo fructifero
que a todos nos hubiese gustado.

Un cordial saludo!!

Sub CotizacionSemanal()
Sheets("AUX").Select
Sheets.Add
Range("A1").Select
ActiveCell.FormulaR1C1 = "BBVA" 'En este caso, de ser posible que la
macro detectara el nombre de la hoja y lo pusiera en la casilla
Range("A2").Select
ActiveCell.FormulaR1C1 = "ELE"
Range("A3").Select
ActiveCell.FormulaR1C1 = "REP"
Range("A4").Select
ActiveCell.FormulaR1C1 = "SAN"
Range("A5").Select
ActiveCell.FormulaR1C1 = "TEF"
Range("A6").Select
ActiveCell.FormulaR1C1 = "TEM"
Range("B1").Select
ActiveCell.FormulaR1C1 = "=sheets(1) !R[2]C[-1]"
Range("B1").Select
Selection.NumberFormat = "yyyymmdd"
Range("B1:B6").Select
Selection.FillDown
Range("C1").Select
ActiveCell.FormulaR1C1 = "»VA!R[2]C[-1]"
Range("C2").Select
ActiveCell.FormulaR1C1 = "=ELE!R[2]C[-1]"
Range("C3").Select
ActiveCell.FormulaR1C1 = "=REP!R[2]C[-1]"
Range("C4").Select
ActiveCell.FormulaR1C1 = "=SAN!R[2]C[-1]"
Range("C5").Select
ActiveCell.FormulaR1C1 = "=TEF!R[2]C[-1]"
Range("C6").Select
ActiveCell.FormulaR1C1 = "=TEM!R[2]C[-1]"
Range("D1").Select
ActiveCell.FormulaR1C1 = "=LARGE(BBVA!R[2]C[1]:R[6]C[1],1)"
Range("D2").Select
ActiveCell.FormulaR1C1 = "=LARGE(ELE!R[1]C[1]:R[5]C[1],1)"
Range("D3").Select
ActiveCell.FormulaR1C1 = "=LARGE(REP!RC[1]:R[4]C[1],1)"
Range("D4").Select
ActiveCell.FormulaR1C1 = "=LARGE(SAN!R[-1]C[1]:R[3]C[1],1)"
Range("D5").Select
ActiveCell.FormulaR1C1 = "=LARGE(TEF!R[-2]C[1]:R[2]C[1],1)"
Range("D6").Select
ActiveCell.FormulaR1C1 = "=LARGE(TEM!R[-3]C[1]:R[1]C[1],1)"
Range("E1").Select
ActiveCell.FormulaR1C1 = "=SMALL(BBVA!R[2]C[1]:R[6]C[1],1)"
Range("E2").Activate
ActiveCell.FormulaR1C1 = "=SMALL(ELE!R[1]C[1]:R[5]C[1],1)"
Range("E3").Activate
ActiveCell.FormulaR1C1 = "=SMALL(REP!RC[1]:R[4]C[1],1)"
Range("E4").Activate
ActiveCell.FormulaR1C1 = "=SMALL(SAN!R[-1]C[1]:R[3]C[1],1)"
Range("E5").Activate
ActiveCell.FormulaR1C1 = "=SMALL(TEF!R[-2]C[1]:R[2]C[1],1)"
Range("E6").Activate
ActiveCell.FormulaR1C1 = "=SMALL(TEM!R[-3]C[1]:R[1]C[1],1)"
Range("F1").Select
ActiveCell.FormulaR1C1 = "»VA!R[2]C[-3]"
Range("F2").Select
ActiveCell.FormulaR1C1 = "=ELE!R[1]C[-3]"
Range("F3").Select
ActiveCell.FormulaR1C1 = "=REP!RC[-3]"
Range("F4").Select
ActiveCell.FormulaR1C1 = "=SAN!R[-1]C[-3]"
Range("F5").Select
ActiveCell.FormulaR1C1 = "=TEF!R[-2]C[-3]"
Range("F6").Select
ActiveCell.FormulaR1C1 = "=TEM!R[-3]C[-3]"
Range("G1").Select
ActiveCell.FormulaR1C1 = "=SUM(BBVA!R[2]C:R[6]C)"
Range("G2").Select
ActiveCell.FormulaR1C1 = "=SUM(ELE!R[1]C:R[5]C)"
Range("G3").Select
ActiveCell.FormulaR1C1 = "=SUM(REP!RC:R[4]C)"
Range("G4").Select
ActiveCell.FormulaR1C1 = "=SUM(SAN!R[-1]C:R[3]C)"
Range("G5").Select
ActiveCell.FormulaR1C1 = "=SUM(TEF!R[-2]C:R[2]C)"
Range("G6").Select
ActiveCell.FormulaR1C1 = "=SUM(TEM!R[-3]C:R[1]C)"
Range("A7").Select

ActiveCell.FormulaR1C1 = _

"=R[-6]C&"",""&R[-6]C[1]&"",""&R[-6]C[2]&"",""&R[-6]C[3]&"",""&R[-6]C[4]&"",
""&R[-6]C[5]&"",""&R[-6]C[6]"
Range("A8").Select
ActiveCell.FormulaR1C1 = _

"=R[-6]C&"",""&R[-6]C[1]&"",""&R[-6]C[2]&"",""&R[-6]C[3]&"",""&R[-6]C[4]&"",
""&R[-6]C[5]&"",""&R[-6]C[6]"
Range("A9").Select
ActiveCell.FormulaR1C1 = _

"=R[-6]C&"",""&R[-6]C[1]&"",""&R[-6]C[2]&"",""&R[-6]C[3]&"",""&R[-6]C[4]&"",
""&R[-6]C[5]&"",""&R[-6]C[6]"
Range("A10").Select
ActiveCell.FormulaR1C1 = _

"=R[-6]C&"",""&R[-6]C[1]&"",""&R[-6]C[2]&"",""&R[-6]C[3]&"",""&R[-6]C[4]&"",
""&R[-6]C[5]&"",""&R[-6]C[6]"
Range("A11").Select
ActiveCell.FormulaR1C1 = _

"=R[-6]C&"",""&R[-6]C[1]&"",""&R[-6]C[2]&"",""&R[-6]C[3]&"",""&R[-6]C[4]&"",
""&R[-6]C[5]&"",""&R[-6]C[6]"
Range("A12").Select
ActiveCell.FormulaR1C1 = _

"=R[-6]C&"",""&R[-6]C[1]&"",""&R[-6]C[2]&"",""&R[-6]C[3]&"",""&R[-6]C[4]&"",
""&R[-6]C[5]&"",""&R[-6]C[6]"
Range("A13").Select
Range("A7:A12").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Union(Range( _

"G2,G3,G4,G5,G6,A7:A12,B1,B2,B3,B4,B5,B6,C1,C2,C3,C4,C5,C6,D1,D2,D3,D4,D5,D6
,E1,E2,E3,E4,E5,E6,F1,F2" _
), Range("F3,F4,F5,F6,G1")).Select
Range("G6").Activate
Application.CutCopyMode = False
Selection.ClearContents
Range("A1").Select
End Sub



"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
#8 Héctor Miguel
23/06/2004 - 10:02 | Informe spam
hola, Jesús !

tratare de hacer un 'resumen' de lo [que yo 'considero'] mas 'siginificativo' de tus 3 mensajes 'de consulta' :))
1
... macro ... utilizar en distintos libros ... problema ... es creada mediante grabacion [...]
... que ... en lugar de ir a la hoja "BBVA" vaya a la primera hoja de la izquierda del libro
... no en todos los libros esa hoja se denomina BBVA ... no todos ... tienen la misma cantidad de hojas [...]
... luego a la segunda ... cuando llegue a la ultima que salte al siguiente paso de la macro [...]
... aprender para la proxima macro quede mas maja


2
... la hoja primera de la izquierda me la denomina como worksheets(5) [...]


3
... la macro ha sido creada para un libro que tiene las ... hojas: bbva, ele, rep, san, tef y tem
... que esta misma macro me sirva ... para otros 7 libros, que tienen hojas con nombres distintos [...]
... habia pensado que ... donde la macro dice ... BBVA ... pusiera sheets(1) ... tendria una macro versatil [...]


[ ... sigue el codigo de 'la grabadora' de macros ... ]

=> mencionas 6 hojas [bva, ele, rep, san, tef y tem], sin embargo, en la macro seleccionas 'aux'
[ademas... 'agregas' una nueva para hacer un 'puenteo temporal' y luego una 'concatenacion']
=> mencionas 'la primera hoja =>de la izquierda<= del libro' [bbva en el caso de 'este' libro]
sin embargo, comentas que [bbva] esta 'localizada' en la posicion [o indice] # 5 =>worksheets(5)< eso significaria que existen otras 4 hojas de calculo =>antes<= pero... estan ocultas [interfase del usuario]
=> en 'resumidas cuentas'... lo que hace la macro es +/- lo siguiente...
[A] => el 'nombre' de cada hoja [y basandose en 'esa' hoja, en las siguientes columnas]...
[B] => un dato de fecha [tomado de la celda 'A3'] + 'aplica' un formato de 'aaaammdd' =>se pierde al concatenar< [C] => un dato tomado de la celda 'B3'
[D] => el 'maximo valor' del rango 'E3:E7'
[E] => el 'minimo valor' del rango 'F3:F7'
[F] => un dato tomado de la celda 'C3'
[G] => la suma del rango 'G3:G7'
'hecho' lo anterior... 'concatena' los resultados y los 'sobrepone' en las celdas con el nombre de las hojas
'finalmente'... borra todo el 'tinglado' que uso como 'puente' hasta lograr la concatenacion :))
=> 'definitivamente'... las macros de la grabadora [al ser 'redundantes'] son factibles de 'optimizar' 'pero'...
como podras 'apreciar' [del 'resumen']... hay [algunas] 'cosillas' que no eran 'faciles' de suponer [menos adivinar] :((
=> antes de una siguiente [propuesta de] 'solucion' =>al menos a mi<= me gustaria pudieras confirmar lo siguiente...
1.- NO existen hojas 'ocultas'
2.- TODAS las hojas [en el libro] 'entran al juego' o... ¿cuales quedan fuera??? [de la #1 a la .???]
3.- TODAS las hojas [que 'entren al juego'] tienen =>la misma<= 'estructura' de datos [los 'pases' de A a G]
es decir... los datos que se toman para el resumen, estan =>en todas<= en la misma 'ubicacion' =>siempre<4.- ¿algun dato que se hubiera 'quedado en el tintero' ??? ;)

¿comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#9 Jesús Román
23/06/2004 - 20:47 | Informe spam
Hola Héctor Miguel!!

1) Perdon por no haber dicho antes que no hay hojas ocultas. Creo que el
problema viene derivado de que al comienzo tenia un libro grande, que por
problemas de memoria tuve que ir dividiendo. De paso decirte que he cambiado
los 'segundos' nombres de las hojas y los he ordenado segun el orden de las
solapas, por lo cual ahora BBVA seria worksheets(1), por ser la primera de
la izquierda
2) La Hoja Aux es una hoja Auxiliar, no cuenta para sacarle datos. En el
resto de los libros tambien existe esta hoja que no se tiene en cuenta. En
cuanto a las hojas a tener en cuenta serian para este primer libro de 6 (de
la 1 a la 6), para los siguientes libros el numero es distinto, hay libros
con 1, 3, 5,6,7,8 y 9 hojas
3) Si todas las hojas son iguales en general, solo cambia el nombre y las
cifras, la estructura es identica en todos los casos
4) Si, tambien queda algo en el tintero, cierto. Se trata de pasar los datos
a un archivo de texto, cosa que he conseguido solo a medias , pues en uno de
los casos al hacerlo se me cambia el nombre completo del libro y en la otra
me llegan los datos al formato de texto con el problema de que tienen una
cruadricula del tipo excel.
Luego hay una parte mas complicada (al menos en mi cabeza aparece así) que
en principio no me he atrevido ni a plantear... se trata de que se toman
datos de 5 dias, en el caso de que tengamos semana completa laboral, pero
que hacer cuando la semana sea de solo 4 o menos dias? Pues si solo hay 4
dias de cotizaciones, la macro me tomará datos en lugar del viernes del
lunes de la semana anterior para mi esto es demasiado grande. En
principio, me conformo con solucionar lo anterior y ya retomaria este asunto
cuando mis conocimientos sean algo mas amplios al respecto.

Gracias por todo Héctor
Saludos a la espera de tus comentarios.



En tu comentario sobre:
> ... que ... en lugar de ir a la hoja "BBVA" vaya a la primera hoja de


la izquierda del libro
te comento que bbva es la primera hoja del libro, lo que queria decir es que
en otros libros en lugar de bbva, que no existe, pues que fuera en todos
ellos a la primera hoja. Aunque supongo que esto ya lo entendiste, lo
escribo para mi tranquilidad

> ... luego a la segunda ... cuando llegue a la ultima que salte al


siguiente paso de la macro [...]
Aqui me refiero que en el caso de un libro que solo tenga (por ejemplo) una
sola hoja, pues que no se me parace la macro por ello



"Héctor Miguel" escribió en el mensaje
news:
hola, Jesús !

tratare de hacer un 'resumen' de lo [que yo 'considero'] mas


'siginificativo' de tus 3 mensajes 'de consulta' :))
1
> ... macro ... utilizar en distintos libros ... problema ... es creada


mediante grabacion [...]
> ... que ... en lugar de ir a la hoja "BBVA" vaya a la primera hoja de la


izquierda del libro
> ... no en todos los libros esa hoja se denomina BBVA ... no todos ...


tienen la misma cantidad de hojas [...]
> ... luego a la segunda ... cuando llegue a la ultima que salte al


siguiente paso de la macro [...]
> ... aprender para la proxima macro quede mas maja
2
> ... la hoja primera de la izquierda me la denomina como worksheets(5)


[...]
3
> ... la macro ha sido creada para un libro que tiene las ... hojas: bbva,


ele, rep, san, tef y tem
> ... que esta misma macro me sirva ... para otros 7 libros, que tienen


hojas con nombres distintos [...]
> ... habia pensado que ... donde la macro dice ... BBVA ... pusiera


sheets(1) ... tendria una macro versatil [...]
[ ... sigue el codigo de 'la grabadora' de macros ... ]

=> mencionas 6 hojas [bva, ele, rep, san, tef y tem], sin embargo, en la


macro seleccionas 'aux'
[ademas... 'agregas' una nueva para hacer un 'puenteo temporal' y


luego una 'concatenacion']
=> mencionas 'la primera hoja =>de la izquierda<= del libro' [bbva en el


caso de 'este' libro]
sin embargo, comentas que [bbva] esta 'localizada' en la posicion [o


indice] # 5 =>worksheets(5)<> eso significaria que existen otras 4 hojas de calculo =>antes<pero... estan ocultas [interfase del usuario]
=> en 'resumidas cuentas'... lo que hace la macro es +/- lo siguiente...
[A] => el 'nombre' de cada hoja [y basandose en 'esa' hoja, en las


siguientes columnas]...
[B] => un dato de fecha [tomado de la celda 'A3'] + 'aplica' un


formato de 'aaaammdd' =>se pierde al concatenar<> [C] => un dato tomado de la celda 'B3'
[D] => el 'maximo valor' del rango 'E3:E7'
[E] => el 'minimo valor' del rango 'F3:F7'
[F] => un dato tomado de la celda 'C3'
[G] => la suma del rango 'G3:G7'
'hecho' lo anterior... 'concatena' los resultados y los 'sobrepone'


en las celdas con el nombre de las hojas
'finalmente'... borra todo el 'tinglado' que uso como 'puente' hasta


lograr la concatenacion :))
=> 'definitivamente'... las macros de la grabadora [al ser 'redundantes']


son factibles de 'optimizar' 'pero'...
como podras 'apreciar' [del 'resumen']... hay [algunas] 'cosillas'


que no eran 'faciles' de suponer [menos adivinar] :((
=> antes de una siguiente [propuesta de] 'solucion' =>al menos a mi<= me


gustaria pudieras confirmar lo siguiente...
1.- NO existen hojas 'ocultas'
2.- TODAS las hojas [en el libro] 'entran al juego' o... ¿cuales quedan


fuera??? [de la #1 a la .???]
3.- TODAS las hojas [que 'entren al juego'] tienen =>la misma<'estructura' de datos [los 'pases' de A a G]
es decir... los datos que se toman para el resumen, estan =>en


todas<= en la misma 'ubicacion' =>siempre<> 4.- ¿algun dato que se hubiera 'quedado en el tintero' ??? ;)

¿comentas?
saludos,
hector.

Respuesta Responder a este mensaje
#10 Héctor Miguel
24/06/2004 - 05:05 | Informe spam
hola, Jesús !

me quedan [hasta donde 'vamos'] +/- 'claras' [la mayor parte de] las situaciones ;)
- NO hojas 'ocultas'
- NO [siempre] el mismo numero de hojas [en cada libro]
- NO hojas 'diferentes' [salvo... SI existe una que se llame 'aux' o... ¿pudiera llamarse diferente?]
- SI la misma 'composicion' [o 'estructura'] de los datos en [todas] las hojas 'reportables'

me queda una [ligera] duda en cuanto a...
____
4) ... algo en el tintero ... se trata de que se toman datos de 5 dias ... pero
... cuando la semana sea de solo 4 o menos dias ... la macro me tomara datos ... de la semana anterior [...]


¨¨¨¨¨¨¨
lo anterior 'me lleva' a suponer que NO =>todas<= las hojas [o los libros] tiene =>la misma cantidad<= de datos [???]
- ¿hay alguna forma de 'saber' =>cuantos<= dias o... =>donde<= 'inicia' la semana que se necesita???
- yo habia supuesto que =>todas<= las hojas tenian los datos [para 5 dias] en...
____
[B] => un dato de fecha [tomado de la celda 'A3'] + 'aplica' un formato de 'aaaammdd' =>se pierde al concatenar< [C] => un dato tomado de la celda 'B3'
[D] => el 'maximo valor' del rango 'E3:E7'
[E] => el 'minimo valor' del rango 'F3:F7'
[F] => un dato tomado de la celda 'C3'
[G] => la suma del rango 'G3:G7'
¨¨¨¨¨¨¨
=> ¿significa que en 'esos' 5 datos/dias pudiera haber datos... de la semana anterior???
o... =>solamente<= se encontraran datos por los dias 'laborados' en la semana [???]
¿comentas?
saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida