Ajustar a la cuadrícula

29/11/2006 - 00:43 por David | Informe spam
Saludos, amigos foreros.

Hoy les traigo una difícil (bueno, a mí me lo parece). Es que no encuentro
por ningún lado cómo cambiar en una hoja el ajuste de las autoformas a la
cuadrícula desde VBA.

He intentado utilizar la grabadora de macros, pero no me registra nada.
También he navegado por el Explorador de Proyectos en busca de un objeto que
tenga esta propiedad, sin ningún resultado.

¿Habrá alguien por allí con la respuesta?

Gracias por leerme.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
30/11/2006 - 04:32 | Informe spam
hola, David !


... no encuentro... como cambiar en una hoja el ajuste de las autoformas a la cuadricula desde VBA.
He intentado utilizar la grabadora de macros, pero no me registra nada.
Tambien he navegado por el Explorador de Proyectos en busca de un objeto que tenga esta propiedad [...]



'asumiendo' que las autoformas son objetos incrustados en hojas de calculo -?-
considera que se quedan 'flotando' sobre las celdas en la 'capa de dibujo' de excel [entonces]...

-> que significa [+/- exactamente]... 'ajustarlos a la cuadricula' -???-
-> puedes exponer detalles mas especificos y concretos en relacion con lo que 'realmente' buscas hacer con vba ?

saludos,
hector.
Respuesta Responder a este mensaje
#2 Héctor Miguel
01/12/2006 - 06:33 | Informe spam
hola, David !

__ 1__
Mencionas la "capa de dibujo"... Es esta capa un objeto accesible desde VBA? Como puedo llegar a ella?



1) [hasta donde se]... no es posible el acceso a la capa de dibujo 'en si misma' :-((
pero si... a 'cualquier' objeto que se encuentre 'flotando' en ella :))

__ 2 __
Mi problema, con mas detalle, es el siguiente:
Imagina una hoja de Excel en los que los anchos de fila y columna se han ajustado para generar una cuadricula uniforme.
Necesito insertar autoformas rectangulares que coincidan exactamente con esta cuadricula.
Esto es lo que logra el "Ajustar a la cuadricula": que las esquinas de tus autoformas no floten libremente sobre la hoja
sino que se "peguen" a las esquinas de las celdas.



2) [hasta donde se]... existen 'factores' [incluso combinables] que podrian hacer que tu 'cuadricula milimetrica' no resulte... 'exacta' :(
[ya los comentaremos cuando proporciones mayores detalles] :D

__ 3 __
En mi aplicacion tengo que hacer calculos con la "celda superior izquierda" y la "celda inferior derecha" de la autoforma
pero cuando esta ultima se mueve de la esquina de la celda (aun cuando sea una fraccion de milimetro), me genera errores en los calculos.



3) a menos que las autoformas las insertes por codigo... sera 'laborioso' lograr un 'ajuste perfecto' de las autoformas SOBRE las celdas -?-
puedes usar las propiedades '.TopLeftCell' y '.BottomRightCell' de un objeto incrustado [Shape] [entre otras propiedades y objetos] ;)
[sera necesario 'profundizar' en los detalles y el comentario del punto anterior] :))

__ 4 __
Lo que pretendo entonces, es activar esta opcion, para que al abrir el libro
el usuario no tenga que estarse preocupando por hacer clic en "Dibujo - Ajustar - A la cuadricula".



4) [nuevamente] va a ser necesario el uso de codigo y el conocimiento [+/- exactamente] de que es lo que 'realmente' buscas lograr -?-
[p.e.] 'como' y donde es que insertas las autoformas en la hoja ?

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#3 Héctor Miguel
01/12/2006 - 20:41 | Informe spam
hola, David !

__ en resumen __
El problema es que cuando el usuario no deja la autoforma perfectamente pegada a la esquina de una celda
las propiedades TopLeftCell y BottomRightCell me reportan celdas que no corresponden a la ubicacion...
Esto lo suelo evitar activando el ajuste a la cuadricula...
Ahora el conflicto es que en ocasiones algunos usuarios no activan el ajuste en pantalla
mueven una autoforma y no verifican que el resultado sea correcto.
Eso me lleva a intentar ajustar esa propiedad por codigo, pero no lo logro...



prueba con las siguientes lineas -> en el evento '_open' de tu libro...

With Application.CommandBars("drawing").FindControl(, 549, , , True)
If Not .State Then .Execute
End With

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida