como selecciono la ultima hoja desde una macro

11/10/2005 - 19:08 por gdiaz | Informe spam
Hola, tengo una macro que crea una hoja nueva, le aplica formato, pega datos
y le cambia de nombre, lo que pasa es que cuando termina la macro oculto una
hoja y me deja activa la "hoja1", como le hago para que me deje activa la
ultima hoja que hice?

Preguntas similare

Leer las respuestas

#6 gdiaz
12/10/2005 - 06:19 | Informe spam
mmm te entiendo, entonces porque me marca este error:

"se ha producido el error 1004 en tiempo de ejecucion:
error en el metodo select de la clase worksheet"

y lo que agregue fue lo que me dijiste:
Worksheets(Worksheets.Count).Select

como ves??

"Héctor Miguel" escribió:

hola, gdiaz !

> por el momento no me ha funcionado, me truena la macro justo ahi
> pero es probable que sea porque la macro la grabe en personal.xls, es correcto eso?

nop ! el uso de la propiedad 'worksheets' si no se 'califica' con algun objeto 'workbook'...
-> se refiere siempre al libro activo [independientemente de en que libro se encuentre la macro] ;)

como comentario adicional...
-> la propiedad worksheets se refiere -solo- a las hojas de calculo en un libro
-> la propuedad sheets incluye a las hojs de grafico y -posibles- hojas de macros en un libro

comentas [si hubiera] detalles adicionales ?
saludos,
hector.



Respuesta Responder a este mensaje
#7 Héctor Miguel
12/10/2005 - 06:30 | Informe spam
hola, gdiaz !

mmm te entiendo, entonces porque me marca este error:
"se ha producido el error 1004 en tiempo de ejecucion:
error en el metodo select de la clase worksheet"
y lo que agregue fue lo que me dijiste:
Worksheets(Worksheets.Count).Select
como ves??



el error significa que al codigo 'no le fue posible'.. 'seleccionar' la hoja en cuestion... cual hoja ???
-> la que se encuentra en la ultima posicion [en la interfase con el usuario] -> en el libro activo :(
te recuerdo que 'worksheets' se refiere -solo- a las hojas de calculo ;)

[pregunta] puedes confirmar si en el libro ->activo<- [al momento de ejecutarse esa parte del codigo]...
-> existe alguna hoja que en la ventana de propiedades [en el editor de vba] tenga la propiedad 'visible' en... oculta ?
y de ser asi... si la muestras... que posicion [o indice] ocupa en la interfase del usuario ???

comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#8 gdiaz
12/10/2005 - 06:44 | Informe spam
es correcto, tengo una hoja oculta, y siempre es la hoja1(mes_bco), las demas
hojas se van agregando, siendo asi: hoja2(ene), hoja3(feb),. y lo que
quiero es que me deje activa la ultima hoja (2,3,4,5,6,7) y me esta
dejando siempre la 2 no importa en cual vaya.

"Héctor Miguel" escribió:

hola, gdiaz !

> mmm te entiendo, entonces porque me marca este error:
> "se ha producido el error 1004 en tiempo de ejecucion:
> error en el metodo select de la clase worksheet"
> y lo que agregue fue lo que me dijiste:
> Worksheets(Worksheets.Count).Select
> como ves??

el error significa que al codigo 'no le fue posible'.. 'seleccionar' la hoja en cuestion... cual hoja ???
-> la que se encuentra en la ultima posicion [en la interfase con el usuario] -> en el libro activo :(
te recuerdo que 'worksheets' se refiere -solo- a las hojas de calculo ;)

[pregunta] puedes confirmar si en el libro ->activo<- [al momento de ejecutarse esa parte del codigo]...
-> existe alguna hoja que en la ventana de propiedades [en el editor de vba] tenga la propiedad 'visible' en... oculta ?
y de ser asi... si la muestras... que posicion [o indice] ocupa en la interfase del usuario ???

comentas?
saludos,
hector.



Respuesta Responder a este mensaje
#9 Héctor Miguel
12/10/2005 - 07:08 | Informe spam
hola, gdiaz !

es correcto, tengo una hoja oculta, y siempre es la hoja1(mes_bco)
las demas hojas se van agregando, siendo asi: hoja2(ene), hoja3(feb)
y lo que quiero es que me deje activa la ultima hoja (2,3,4,5,6,7)
y me esta dejando siempre la 2 no importa en cual vaya.



hay algunas 'cosillas' que estas 'pasando por alto' [o que quizas 'desconoces'] como...

1) es muy distinto 'el orden' como lo ves en la ventana de proyectos de vba... y en la interfase del usuario
a) el orden en vba es siempre 'alfanumerico', en atencion al 'codename' de cada objeto
b) en la interfase del usuario, el orden corresponde a la posicion que ocupa cada hoja [no importa nombre ni...]

2) cuando de inserta una hoja, [generalmente] ocupa la posicion ANTERIOR a la que ocupa la hoja ->activa<-
a menos que, si la insertas por codigo, utilices el argumento 'before:=...' o... 'after:=...'

3) si muestras la hoja que tienes oculta, [probablemente] 'aparecera' ocupando la ultima posicion ->en la interfase de usuario<-
te recuerdo que el orden es diferente como lo ves en vba y como esta 'realmente' en la interfase con el usuario :-(

4) probablmente existan otros 'factores', pero desconozco que otros movimientos pudiera hacer 'la macro' :))

comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#10 gdiaz
13/10/2005 - 16:26 | Informe spam
te envio el archivo para que lo veas, ahi te explico como funciona mas o
menos lo que he hecho.

"Héctor Miguel" escribió:

hola, gdiaz !

> es correcto, tengo una hoja oculta, y siempre es la hoja1(mes_bco)
> las demas hojas se van agregando, siendo asi: hoja2(ene), hoja3(feb)
> y lo que quiero es que me deje activa la ultima hoja (2,3,4,5,6,7)
> y me esta dejando siempre la 2 no importa en cual vaya.

hay algunas 'cosillas' que estas 'pasando por alto' [o que quizas 'desconoces'] como...

1) es muy distinto 'el orden' como lo ves en la ventana de proyectos de vba... y en la interfase del usuario
a) el orden en vba es siempre 'alfanumerico', en atencion al 'codename' de cada objeto
b) en la interfase del usuario, el orden corresponde a la posicion que ocupa cada hoja [no importa nombre ni...]

2) cuando de inserta una hoja, [generalmente] ocupa la posicion ANTERIOR a la que ocupa la hoja ->activa<-
a menos que, si la insertas por codigo, utilices el argumento 'before:=...' o... 'after:=...'

3) si muestras la hoja que tienes oculta, [probablemente] 'aparecera' ocupando la ultima posicion ->en la interfase de usuario<-
te recuerdo que el orden es diferente como lo ves en vba y como esta 'realmente' en la interfase con el usuario :-(

4) probablmente existan otros 'factores', pero desconozco que otros movimientos pudiera hacer 'la macro' :))

comentas?
saludos,
hector.



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