Visual Basic - Problemas para Definir áreas de Impresión variables en Excel con VB

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Problemas para Definir áreas de Impresión variables en Excel con VB

Publicado por W (2 intervenciones) el 07/09/2017 11:03:14
Tengo un problema para definir área de impresión variable.
Genero unas facturas que cambian de tamaño según el número de artículos. La zona la defino con el siguiente código:

1
2
3
4
5
6
'    AreaDeImpresion
    Range(Selection, ActiveCell.SpecialCells(xlCellTypeLastCell)).Select
    With ActiveCell.Offset(2, 0)
        Celda = .Address
    End With
    ActiveSheet.PageSetup.PrintArea = "$B$1:" & Celda


Cuando lo ejecuto paso a paso, en la ventana de programador usando el depurador con la tecla F8. El programa define bien la zona y en la vista previa todo se ve bien pero cuando lo corro directamente, sin ir paso a paso, no define la zona correctamente y el área de impresión se queda corta. No salen las últimas líneas.

Soy nuevo programando en Visual Basic. Estoy aprendiendo VB por mi cuenta viendo manuales y tutoriales por internet. Muchas veces no sé qué es lo que hago mal.
Agradecería cualquier sugerencia.
Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Problemas para Definir áreas de Impresión variables en Excel con VB

Publicado por Antoni Masana (558 intervenciones) el 07/09/2017 12:21:36
No se exactamente que haces con el depurador pero yo he visto que es lo que no me padece que este bien

Este es tu codigo. Fijate que en la línea 2 la hoja activa es "Facturas Emitidas" y cuando llega a la línea 13 sigue en la misma hoja

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
'   Ahora Borro la Matriz Aux en  Facturas Emitidas                     
    Sheets("Facturas Emitidas").Activate  '>-----------------------+    
    Range("P2:Z2").Select                                 '        |    
    If Range("P3") <> "" Then                             '        |    
        Range(Selection, Selection.End(xlDown)).Select    '        |    
    End If                                                '        |    
    Selection.ClearContents                               '        |    
    Range("M2") = ""                                      '        |    
                                                          '        |    
'    AreaDeImpresion                                      '        |    
''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '        |    
'    Dim Celda As Variant                                 '        v    
    Range(Selection, ActiveCell.SpecialCells(xlCellTypeLastCell)).Select
    With ActiveCell.Offset(2, 0)
        Celda = .Address
    End With
    ActiveSheet.PageSetup.PrintArea = "$B$1:" & Celda

Y esta es la corrección. Con esto define bien el área a imprimir.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
'   Ahora Borro la Matriz Aux en  Facturas Emitidas
    Sheets("Facturas Emitidas").Activate
    Range("P2:Z2").Select
    If Range("P3") <> "" Then
        Range(Selection, Selection.End(xlDown)).Select
    End If
    Selection.ClearContents
    Range("M2") = ""
 
'    AreaDeImpresion
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'    Dim Celda As Variant
    Sheets("FATURA_Impresa").Activate                      ' <---- Añado el cambio a la hoja de FATURA_IMPRESA
    Range(Selection, ActiveCell.SpecialCells(xlCellTypeLastCell)).Select
    With ActiveCell.Offset(2, 0)
        Celda = .Address
    End With
    ActiveSheet.PageSetup.PrintArea = "$B$1:" & Celda

NOTA: Estaría mejor llamarla FACTURA_IMPRESA en lugar de FATURA_IMPRESA

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

Problemas para Definir áreas de Impresión variables en Excel con VB

Publicado por W (2 intervenciones) el 07/09/2017 13:42:50
Muchas gracias Antoni
Tenía varios días con el problema y decidí usar el foro por primera vez.
No sé bien cómo funciona pero espero que te llegue mi agradecimiento.
Yo definía el área de impresión y después me cambiaba de hoja para borrar unas tablas que usaba temporalmente en otra hoja. Cuando quería regresar a la factura para imprimirla no me dejaba pero cuando lo hacía con el depurador yo cambiaba la hoja con el ratón y no me daba cuenta de lo que estaba haciendo. Ahora que lo veo es un error básico. Pero como dije es la primera vez que estoy usando VB .
De nuevo muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar