Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

VBA for Apps Imprimir Objetos con medidas exactas

111 views
Skip to first unread message

Daniel Kennedy

unread,
Aug 17, 2004, 3:28:58 PM8/17/04
to
Por favor,
Necesito imprimir objetos rectangulares de medidas exactas
en centímetros provistas por el usuario dibujados en una
hoja de Excel.

EL alto de la figura sale impreso casi exacto
El ancho de la figura es siempre menor que el valor dado
por el usuario.

Gracias, por cualquier idea al respecto.

Daniel Kennedy

anon...@discussions.microsoft.com

unread,
Aug 17, 2004, 3:55:16 PM8/17/04
to
Eso sería como clavar puntas utilizando una llave inglesa.
Excel no es para eso.

>-----Mensaje original-----

>.
>

Héctor Miguel

unread,
Aug 18, 2004, 2:38:21 AM8/18/04
to
hola, Daniel !

> Necesito imprimir objetos rectangulares de medidas exactas en centimetros


> provistas por el usuario dibujados en una hoja de Excel.

> El alto de la figura sale impreso casi exacto.


> El ancho de la figura es siempre menor que el valor dado por el usuario.

no mencionas 'como' es que...
- el usuario 'proporciona' las medidas y se 'genera/dibuja' el rectangulo en la hoja [y 'donde'] :(
-> podrias 'convertir a puntos' [de documento] las medidas 'proporcionadas' [en centimetros]
el siguiente ejemplo 'supone' que se quiere dibujar un recangulo EN la celda 'activa'...
'tomando' las medidas [indicadas en centimetros] de las celdas 'B1' [el ancho] y 'B2' [el alto]
usando el metodo 'AddShape(Tipo, Izquierda, Arriba, Ancho, Alto)'
=== en un modulo de codigo 'normal' ===
Sub DibujarUnRectangulo()
Dim Ancho As Single, Alto As Single
Ancho = Application.CentimetersToPoints(Range("b1"))
Alto = Application.CentimetersToPoints(Range("b2"))
ActiveSheet.Shapes.AddShape _
msoShapeRectangle, ActiveCell.Left, ActiveCell.Top, Ancho, Alto
End Sub
¨¨¨¨¨¨¨¨¨¨¨¨
puedes modificar despues las propiedades de la figura [tipo de linea, colores, relleno, etc.]
=>aun asi<=... la 'exactitud' de las medidas [a la hora de imprimir] =>podrian verse 'afectadas'<=
[por las propiedades/resolucion de la impresora 'de salida'] :((

¿comentas?
saludos,
hector.

Daniel Kennedy

unread,
Aug 18, 2004, 7:26:45 AM8/18/04
to
Hola Hector,
MUCHAS gracias por tu respuesta.
El Ej. que propones es lo que uso.
El problema de la impresora lo sé, pero..hay maneras de
saber los datos de la impresora activa? y saber la
resolución que está usando?.

En http://msdn.microsoft.com/library/default.asp?
url=/library/en-us/vbapb11/html/pbproresolution.asp

se muestra Application.Active Printer.Resolution

pero Resolution no existe como propiedad en el editor de
Visual Basic de Excel (Office 2003). Será .NET??

Gracias otra vez.

>-----Mensaje original-----

>.
>

Héctor Miguel

unread,
Aug 21, 2004, 10:59:16 PM8/21/04
to
hola, Daniel !

> El problema de la impresora lo se
> ... hay maneras de saber los datos de la impresora activa?
>... y saber la resolucion que esta usando?
> En http://microsoft.com/library[..] se muestra Application.ActivePrinter.Resolution
> pero Resolution no existe ... en el editor de Visual Basic de Excel (Office 2003). Sera .NET??

en la plataforma 'recortada' de VB de excel [VBA o Visual Basic for Applications] tendrias que...
-> hacer algunas 'llamadas' a las API's de windows [y aun asi...]
-> usar el metodo 'SendKeys' para 'navegar' por las opciones de configuracion de 'x' impresora
[las teclas 'apropiadas' -seguramente- serian diferentes segun el 'driver'/idioma de la impresora/aplicacion]

[segun yo] seria mejor 'advertir' al usuario ANTES de 'lanzar' la impresion que 'procure asegurarse de...'
- que la resolucion que usara la impresora 'designada' sea 'la mejor' para 'asegurar [cierta] exactitud' en medidas
[probablemente] usando el evento '_beforeprint' del libro
y [quizas 'facilitarle' la tarea] 'presentando' el dialogo de configuracion de impresoras de excel
etc. etc. etc. :))

¿comentas cual seria 'el camino a seguir' de tu preferencia/necesidad? -API's o... 'aviso'-
saludos,
hector.

0 new messages