VBA for Apps Imprimir Objetos con medidas exactas

17/08/2004 - 21:28 por Daniel Kennedy | Informe spam
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

Preguntas similare

Leer las respuestas

#1 Anonimo
17/08/2004 - 21:55 | Informe spam
Eso sería como clavar puntas utilizando una llave inglesa.
Excel no es para eso.



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
.

Respuesta Responder a este mensaje
#2 Héctor Miguel
18/08/2004 - 08:38 | Informe spam
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.
Respuesta Responder a este mensaje
#3 Daniel Kennedy
18/08/2004 - 13:26 | Informe spam
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.

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.

.

Respuesta Responder a este mensaje
#4 Héctor Miguel
22/08/2004 - 04:59 | Informe spam
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.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida