Modificar macro para seleccion hasta última fila vacia

Buenas noches Valero,

Ayer te pedí ayuda con una macro y lo solucionaste impecablemente, hoy necesito de tu  ayuda nuevamente, ya que no soy capaz de solucionarlo.

He modificado para que pueda imprimir diferentes hojas poniendo el nombre en la celda C10 , pero me he quedado trabado en conseguir que imprima etiquetas hasta la primera celda vacia, ya que hay listados de diferentes longitudes de filas, he utilizado la propiedad range.end(xlDown) pero lo hago mal y me da error.

Adjunto el enlace con el fichero y las modificaciones que hice.

https://mega.co.nz/#!pQZ21bqb!UaPqirA8INmTS95pceo65P2z-fODkKZzFriN1ogN5nI 

Saludos

1 Respuesta

Respuesta
1

Juan Pedro!

Si que es un poco lioso el manejo de los rangos de Excel. Seguramente los buenos expertos lo sabrán hacer mejor que yo con variables Range directamente. Lo que voy a hacer es definir una variable entera FilaFinal donde almacenaré la última fila para así poder formar después el rango donde se deben hacer las operaciones.

Sub TestImprimirFichas()
Application.ScreenUpdating = False
On Error GoTo MENSAJE
ActiveSheet.PageSetup.PrintArea = "$A$1:$G$4"
Dim celda As Range
Dim Izquierda As Boolean
Dim FilaFinal As Integer
a = Range("C10")
FilaFinal = Worksheets(a).Range("A" & Rows.Count).End(xlUp).Row
Izquierda = True
For Each celda In _
     Worksheets(a).Range("A2:A" & FilaFinal)
     If Izquierda Then
         Worksheets("etiquetas").[A1] = celda
     Else
         Worksheets("etiquetas").[E1] = celda
         Worksheets("ETIQUETAS").PrintPreview 'Out COPIES:=Range("J1")
     End If
     Izquierda = Not Izquierda
Next
If Not Izquierda Then
     ActiveSheet.PageSetup.PrintArea = "$A$1:$D$4"
     Worksheets("ETIQUETAS").PrintPreview 'Out COPIES:=Range("J1")
End If
Application.ScreenUpdating = True
Range("a1") = ""
Range("e1") = ""
Exit Sub

MENSAJE:
MsgBox ("REPITE")

End Sub

Y eso es todo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas