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
>-----Mensaje original-----
>.
>
> 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.
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-----
>.
>
> 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.