Excel. Imprimir rango de celdas si una celda está llena/ocupada

He estado buscando pero entre que estoy bastante pez en VBA y que lo que encuentro no se aproxima a lo que necesito, no soy capaz de resolver el problema.
Tengo en la Hoja1 de un libro "dibujadas" 6 páginas para imprimir. Estas páginas tienen condicionada la impresión a que una celda concreta esté llena u ocupada. Necesitaría, si es posible, el código VBA de la macro.
Expongo las páginas:
Página 1 > Rango de Impresión A1:BM31 > Celda que active su impresión BD4
Página 2 > Rango de Impresión A32:BM62 > Celda que active su impresión BD35
Página 3 > Rango de Impresión A63:BM93 > Celda que active su impresión BD66
Página 4 > Rango de Impresión A94:BM124 > Celda que active su impresión BD97
Página 5 > Rango de Impresión A125:BM155 > Celda que active su impresión BD128
Página 6 > Rango de Impresión A156:BM186 > Celda que active su impresión BD159
Vuelvo a recordar que todas ellas están en la Hoja1 de un Libro.

1 respuesta

Respuesta
1

Pues después de darle alguna que otra vuelta, y partiendo de que no tengo apenas idea de VBA, he hecho mi primera macro, consiguiendo que haga lo que buscaba. Ya he dicho que no tengo ni idea de VBA y seguramente habrá formas más fáciles y sencillas de hacer lo mismo, pero yo lo he conseguido con este código:
Sub IMPRIMIR()
If Range("BD4").Value <> "" Then
ActiveSheet.PageSetup.PrintArea = "$A$1:$BM$31"
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End If
If Range("BD35").Value <> "" Then
ActiveSheet.PageSetup.PrintArea = "$A$32:$BM$62"
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End If
If Range("BD66").Value <> "" Then
ActiveSheet.PageSetup.PrintArea = "$A$63:$BM$93"
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End If
If Range("BD97").Value <> "" Then
ActiveSheet.PageSetup.PrintArea = "$A$94:$BM$124"
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End If
If Range("BD128").Value <> "" Then
ActiveSheet.PageSetup.PrintArea = "$A$125:$BM$155"
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End If
If Range("BD159").Value <> "" Then
ActiveSheet.PageSetup.PrintArea = "$A$156:$BM$186"
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End If
ActiveSheet.PageSetup.PrintArea = "$A$1:$BM$31"
End Sub
Espero que a alguien que busque algo parecido le ayude o le pueda servir.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas