Ver Mensaje Individual
  #8 (permalink)  
Antiguo 13/03/2006, 05:53
Avatar de 3pies
3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 11 meses
Puntos: 144
A pesar de haberle dado al botón cancelar, te imprime, porque se ejecuta el código que sigue a ese msgbox (cuando se finaliza el selec case).

Aparte de eso, si le das al botón aceptar del msgbox, y por ejemplo, y en celda B17 de la hoja2 tienes algún dato (por ejemplo), te imprimirá 2 veces esa página: una por el "aceptar" del msgbox, y otra por cumplirse lo que hay dentro del bucle "for".

Para solucionar ambas cosas, pon esto:
Código:
Sub Imprimir_solo_si_hay_datos()
Application.ScreenUpdating = False
msbTexto = "Vas a imprimir einnnn? estás seguro?"
msbTitu = "Hola"
msbOpc = vbOKCancel + vbQuestion + vbDefaultButton1
msbRespuesta = MsgBox(msbTexto, msbOpc, msbTitu)
Select Case msbRespuesta
Case vbOK 'Aceptar
    Hoja1.Select
    For i = 1 To Sheets.Count
        If i = 1 Then
            If Range("d7") <> "" Then ActiveWindow.SelectedSheets.PrintOut Copies:=1
        ElseIf i = 4 Then
            If Range("d68") <> "" Then ActiveWindow.SelectedSheets.PrintOut Copies:=1
        ElseIf i = 2 Then
            If Range("b17") <> "" Then ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1
            If Range("b39") <> "" Then ActiveWindow.SelectedSheets.PrintOut From:=2, To:=2, Copies:=1
            If Range("b61") <> "" Then ActiveWindow.SelectedSheets.PrintOut From:=3, To:=3, Copies:=1
            If Range("b83") <> "" Then ActiveWindow.SelectedSheets.PrintOut From:=4, To:=4, Copies:=1
        End If
        If i < Sheets.Count Then ActiveSheet.Next.Select
    Next
Case vbCancel 'Cancelar
    Sheets("hoja2").Select
    Range("A1").Select
    'La siguiente línea la puedes poner si deseas que el usuario no sea redirigido a la hoja llamada "menuprincipal"
    exit sub
End Select
Sheets("menuprincipal").Select
Range("A1").Select
Application.ScreenUpdating = True
End Sub

Última edición por 3pies; 13/03/2006 a las 05:59