Macro imprimir solo si la hoja cumple la condición

Hola, buenos días,
Buscando en google he encontrado esta pregunta que le habían hecho:
"hola g, creo que tu me puedes ayudar con esto
tengo un libro excel con aprox. 100 pestañas, cada una corresponde a una persona distinta con liquidaciones individuales, estas liq. Se cargan mensualmente por lo que no todas tendrán datos al final de proceso.
Lo que necesito es una macro que asignare a un botón para que imprima solo las hojas que tengan un resultado en una celda determinada, por ej. Si F48 fuera la resultante de la suma de la columna F
si F48>0 imprimir, sino saltear y chequear la sig. Hoja y así hasta el final del libro.
Desde ya muchísimas gracias por tu tiempo y atencio"

El tema lo dejaron a medias porque la persona que preguntó encontró la respuesta... Yo soy bastante más torpe y no doy con ella, pero mi problema es el mismo. Hasta ahora estaba trabajando en este problema pero para que me señalara la pestaña de la hoja que cumple la condición en rojo, pero si me lo imprime me da igual (casi mejor).
Le copio lo que he hecho hasta ahora, casi me funciona, pero solo funciona si todas las celdas que me interesan (en mi caso en vez de la F48 es la D65) son distintas de 0
Private Sub Workbook_Open()
For Each Worksheet In ThisWorkbook.Worksheets
If Range("D65") > 0 Then
Worksheet.Tab.ColorIndex = 3       ' pestaña roja
Else
Worksheet.Tab.ColorIndex = -4142   ' pestaña sin color
End If
Next Worksheet
End Sub        ' Workbook_Open
No se que estoy haciendo mal. Si me pudiese ayudar me ahorraría mucho tiempo.
Gracias de antemano por su ayuda.

1 respuesta

Respuesta
1
Probá con la siguiente modificación
Private Sub Workbook_Open()
dim w as Worksheet
For Each w In ThisWorkbook.Worksheets
If wRange("D65") > 0 Then
w.Tab.ColorIndex = 3 ' pestaña roja
'w.PrintOut                    'si te sirve sacá el ' inicial
Else
w.Tab.ColorIndex = -4142 ' pestaña sin color
End If
Next Worksheet
End Sub
Muchas gracias gfellay por responder tan pronto y tan bien. Antes de cerrar la consulta le pondo dos modificaciones que le he hecho porque me daba un error. Yo no tengo casi nada de idea y las he sacado por lógica y mirando el resto de la instrucción que me había pasado, así que por favor, si le puede echar un vistazo para ver que no he metido la pata. Yo la probé y es justo lo que necesito. Las he subrayado para que vaya a tiro hecho.
Gracias de nuevo un saludo.
Private Sub Workbook_Open()
Dim w As Worksheet
For Each w In ThisWorkbook.Worksheets
If w.Range("D65") > 0 Then
w.Tab.ColorIndex = 3 ' pestaña roja
'w.PrintOut                    'si te sirve sacá el ' inicial
Else
w.Tab.ColorIndex = -4142 ' pestaña sin color
End If
Next w
End Sub
Son correctas tus modificaciones...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas