2016-07-04 20 views
-1
Private Sub Workbook_BeforePrint(Cancel As Boolean) 
    If Sheets("Recibo Km A2IT").Range("F20").Value = "Inválido" Or Sheets("Recibo Km A2IT").Range("F31").Value = "Inválido" Or Sheets("Recibo Km A2IT").Range("F42").Value = "Inválido" Or Sheets("Recibo Km A2IT").Range("F53").Value = "Inválido" Then 
     Cancel = True 
     MsgBox ("Por favor verifique se os campos estão válidos") 
    End If 
End Sub 

Ich versuche, dies auf einer Excel-Tabelle zu implementieren, aber nicht herausfinden, wie es funktioniert. Es tut einfach nichts. Ich möchte es immer weiter arbeiten lassen, weil die Zellen "Inválido" oder "" sein können, aber es hängt von anderen Bedingungen ab.VBA Excel deaktivieren Drucken

Können Sie sagen, was ich falsch mache?

+1

Funktioniert es, wenn Sie die 'If ... End If' entfernen? – arcadeprecinct

+0

Ja, es funktioniert .. so etwas stimmt nicht mit dem, wenn nicht wahr? Ich weiß nicht, ob das der richtige Weg ist, das if zu verwenden, oder ich bin neu in vb – Joh

+0

Es ist der richtige Weg. Anscheinend enthält keine der Zellen den Wert "Inválido". Vielleicht etwas mit dem "á"? Wie wird "Inválido" zur Zelle hinzugefügt? über VBA oder Formel oder von Hand? – arcadeprecinct

Antwort

0

Versuchen Sie, wie dies zu tun:

If (Sheets("Recibo Km A2IT").Range("F20").Value = "Inválido") Or _ 
    (Sheets("Recibo Km A2IT").Range("F31").Value = "Inválido") Or _ 
    (Sheets("Recibo Km A2IT").Range("F42").Value = "Inválido") Or _ 
    (Sheets("Recibo Km A2IT").Range("F53").Value = "Inválido") Then 
+0

Ich habe es schon richtig, jetzt habe ich ein Problem, das einfach aussehen könnte : – Joh