Excel/vba: for while mit arrays anstelle diverser if else?

DjangOC

Lt. Commander
Registriert
Sep. 2013
Beiträge
1.636
Hallo miteinander

Ich habe hier schonmal rasch um Hilfe gefragt. Das Problem dort konnte gelöst werden. Nun habe ich, um die Korrektheit der übrigen Zellinhalte zu kontollieren - da die Zellen nachher vom Makro bearbeitet werden, kann ich ja nicht mittem Blattschutz und gesperrten Bereichen schaffen. - diverse if else Abfragen, da meine Versuche mit for while und arrays gescheitert sind.
Das if Else Gebastel frisst aber gut 600 Zeilen, was es ja nicht sein kann. - ich mein, es tut, ist aber hässlich, und kann nur ein Fehler melden, nicht mehrere.

Ziel ist es, dass das Ganze mit deutlich weniger Code gemacht wird und dass es sämtliche Fehler erfasst, meldet und abbricht.

Code:
' Überprüft die Zellenintegrität.
    If Sheets("Arbeitsblatt").Range("A1").Value <> "Belegnummer" Then
        MsgBox "Integrität der Zelle A1 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A2").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A2 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A3").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A3 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A4").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A4 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A5").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A5 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A6").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A6 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A7").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A7 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A8").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A8 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A9").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A9 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A10").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A10 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A11").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A11 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A12").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A12 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A13").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A13 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A14").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A14 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A15").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A15 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A16").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A16 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A17").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A17 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A18").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A18 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A19").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A19 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("B1").Value <> "Datum" Then
        MsgBox "Integrität der Zelle B1 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C1").Value <> "Soll-Konto" Then
        MsgBox "Integrität der Zelle C1 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C2").Value <> "10000" Then
        MsgBox "Integrität der Zelle C2 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C3").Value <> "10950" Then
        MsgBox "Integrität der Zelle C3 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C4").Value <> "10300" Then
        MsgBox "Integrität der Zelle C4 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C5").Value <> "20300" Then
        MsgBox "Integrität der Zelle C5 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C6").Value <> "10955" Then
        MsgBox "Integrität der Zelle C6 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C7").Value <> "66300" Then
        MsgBox "Integrität der Zelle C7 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C8").Value <> "10050" Then
        MsgBox "Integrität der Zelle C8 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C9").Value <> "10050" Then
        MsgBox "Integrität der Zelle C9 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C10").Value <> "10050" Then
        MsgBox "Integrität der Zelle C10 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C11").Value <> "10050" Then
        MsgBox "Integrität der Zelle C11 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C12").Value <> "10050" Then
        MsgBox "Integrität der Zelle C12 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C13").Value <> "10050" Then
        MsgBox "Integrität der Zelle C13 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C14").Value <> "10050" Then
        MsgBox "Integrität der Zelle C14 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C15").Value <> "10050" Then
        MsgBox "Integrität der Zelle C15 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C16").Value <> "10050" Then
        MsgBox "Integrität der Zelle C16 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C17").Value <> "10050" Then
        MsgBox "Integrität der Zelle C17 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C18").Value <> "10050" Then
        MsgBox "Integrität der Zelle C18 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C19").Value <> "10050" Then
        MsgBox "Integrität der Zelle C19 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D1").Value <> "Haben-Konto" Then
        MsgBox "Integrität der Zelle D1 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D2").Value <> "10050" Then
        MsgBox "Integrität der Zelle D2 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D3").Value <> "10050" Then
        MsgBox "Integrität der Zelle D3 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D4").Value <> "10050" Then
        MsgBox "Integrität der Zelle D4 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D5").Value <> "10050" Then
        MsgBox "Integrität der Zelle D5 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D6").Value <> "10050" Then
        MsgBox "Integrität der Zelle D6 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D7").Value <> "10050" Then
        MsgBox "Integrität der Zelle D7 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D8").Value <> "31010" Then
        MsgBox "Integrität der Zelle D8 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D9").Value <> "31020" Then
        MsgBox "Integrität der Zelle D9 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D10").Value <> "31030" Then
        MsgBox "Integrität der Zelle D10 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D11").Value <> "31040" Then
        MsgBox "Integrität der Zelle D11 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D12").Value <> "31050" Then
        MsgBox "Integrität der Zelle D12 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D13").Value <> "32010" Then
        MsgBox "Integrität der Zelle D13 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D14").Value <> "32520" Then
        MsgBox "Integrität der Zelle D14 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D15").Value <> "32910" Then
        MsgBox "Integrität der Zelle D15 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D16").Value <> "32940" Then
        MsgBox "Integrität der Zelle D16 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D17").Value <> "34010" Then
        MsgBox "Integrität der Zelle D17 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D18").Value <> "20240" Then
        MsgBox "Integrität der Zelle D18 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D19").Value <> "32930" Then
        MsgBox "Integrität der Zelle D19 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("E1").Value <> "Betrag Brutto" Then
        MsgBox "Integrität der Zelle E1 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F1").Value <> "Buchungstext" Then
        MsgBox "Integrität der Zelle F1 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F2").Value <> "Bar" Then
        MsgBox "Integrität der Zelle F2 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F3").Value <> "Debitor" Then
        MsgBox "Integrität der Zelle F3 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F4").Value <> "Kreditkarte" Then
        MsgBox "Integrität der Zelle F4 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F5").Value <> "Gutschein" Then
        MsgBox "Integrität der Zelle F5 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F6").Value <> "Essensbons" Then
        MsgBox "Integrität der Zelle F6 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F7").Value <> "Offeriert" Then
        MsgBox "Integrität der Zelle F7 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F8").Value <> "Ertrag Kaffee,Tee" Then
        MsgBox "Integrität der Zelle F8 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F9").Value <> "Ertrag Mineral" Then
        MsgBox "Integrität der Zelle F9 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F10").Value <> "Ertrag Bier" Then
        MsgBox "Integrität der Zelle F10 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F11").Value <> "Ertrag Wein" Then
        MsgBox "Integrität der Zelle F11 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F12").Value <> "Ertrag Spirituosen" Then
        MsgBox "Integrität der Zelle F12 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F13").Value <> "Ertrag Küche" Then
        MsgBox "Integrität der Zelle F13 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F14").Value <> "Ertrag Diverses" Then
        MsgBox "Integrität der Zelle F14 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F15").Value <> "Ertrag Take away" Then
        MsgBox "Integrität der Zelle F15 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F16").Value <> "Ertrag Chäsen" Then
        MsgBox "Integrität der Zelle F16 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F17").Value <> "Unterkunft" Then
        MsgBox "Integrität der Zelle F17 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F18").Value <> "Kurtaxe" Then
        MsgBox "Integrität der Zelle F18 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F19").Value <> "Ertrag Zigarettenverkauf" Then
        MsgBox "Integrität der Zelle F19 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G1").Value <> "Kostenstelle" Then
        MsgBox "Integrität der Zelle G1 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G2").Value <> "" Then
        MsgBox "Integrität der Zelle G2 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G3").Value <> "" Then
        MsgBox "Integrität der Zelle G3 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G4").Value <> "" Then
        MsgBox "Integrität der Zelle G4 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G5").Value <> "" Then
        MsgBox "Integrität der Zelle G5 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G6").Value <> "" Then
        MsgBox "Integrität der Zelle G6 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G7").Value <> "20" Then
        MsgBox "Integrität der Zelle G7 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G8").Value <> "20" Then
        MsgBox "Integrität der Zelle G8 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G9").Value <> "20" Then
        MsgBox "Integrität der Zelle G9 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G10").Value <> "20" Then
        MsgBox "Integrität der Zelle G10 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G11").Value <> "20" Then
        MsgBox "Integrität der Zelle G11 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G12").Value <> "20" Then
        MsgBox "Integrität der Zelle G12 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G13").Value <> "20" Then
        MsgBox "Integrität der Zelle G13 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G14").Value <> "20" Then
        MsgBox "Integrität der Zelle G14 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G15").Value <> "20" Then
        MsgBox "Integrität der Zelle G15 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G16").Value <> "20" Then
        MsgBox "Integrität der Zelle G16 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G17").Value <> "20" Then
        MsgBox "Integrität der Zelle G17 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G18").Value <> "20" Then
        MsgBox "Integrität der Zelle G18 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G19").Value <> "20" Then
        MsgBox "Integrität der Zelle G19 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H1").Value <> "MwSt. Code" Then
        MsgBox "Integrität der Zelle H1 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H2").Value <> "" Then
        MsgBox "Integrität der Zelle H2 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H3").Value <> "" Then
        MsgBox "Integrität der Zelle H3 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H4").Value <> "" Then
        MsgBox "Integrität der Zelle H4 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H5").Value <> "" Then
        MsgBox "Integrität der Zelle H5 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H6").Value <> "" Then
        MsgBox "Integrität der Zelle H6 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H7").Value <> "21u" Then
        MsgBox "Integrität der Zelle H7 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H8").Value <> "01u" Then
        MsgBox "Integrität der Zelle H8 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H9").Value <> "01u" Then
        MsgBox "Integrität der Zelle H9 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H10").Value <> "01u" Then
        MsgBox "Integrität der Zelle H10 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H11").Value <> "01u" Then
        MsgBox "Integrität der Zelle H11 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H12").Value <> "01u" Then
        MsgBox "Integrität der Zelle H12 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H13").Value <> "01u" Then
        MsgBox "Integrität der Zelle H13 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H14").Value <> "01u" Then
        MsgBox "Integrität der Zelle H14 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H15").Value <> "02u" Then
        MsgBox "Integrität der Zelle H15 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H16").Value <> "01u" Then
        MsgBox "Integrität der Zelle H16 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H17").Value <> "03u" Then
        MsgBox "Integrität der Zelle H17 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H18").Value <> "" Then
        MsgBox "Integrität der Zelle H18 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H19").Value <> "01u" Then
        MsgBox "Integrität der Zelle H19 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If

Vielen Dank schonmal für eure Hilfe.
 
Ich hab von VBA nahezu keine Ahnung, aber so grundsätzlich zwei Arrays aufbauen. Im ersten die Zellen, im Zweiten die Werte und dann mit ner Schleife drüber fliegen. Wenn du mehrere "Fehler" in einem Lauf feststellen willst, dann schreib dir die Zelle in ein Array und am Ende schaust du, ob was in dem "Fehlerarray" steht. Wenn ja, ausgeben, ansonsten ist alles schick.
Oder du merkst dir nur, dass ein Fehler aufgetreten ist und gibst immer schön die Meldung aus. Am Ende prüfst du dann, ob ein Fehler aufgetreten ist und brichst dein Makro ab.
 
Warum die Korrektheit prüfen, wenn du die Korrektheit einfach setzen kannst?


Angenommen in A1 steht nicht Belegnummer sondern asdf. Dann kannst du statt das zu prüfen, einfach den Wert wieder fix auf "Belegnummer" setzen.

Da du eh jede Zelle bzw. mehrere Bereich individuell prüfen musst wird das nicht so einfach mit einer einzelnen Schleife machbar sein.


Ein Beispiel zum setzen wäre:

for i=2 to 19

Sheets("Arbeitsblatt").Range("A" & i ).Value = "G-10023"

next i
 
@Killercow, so in etwa hab ich mir das auch vorgestellt, bekomms nur nicht wirklich hin.

@benz_s, daran habe ich auch zuerst gedacht, allerdings habe ich es sein lassen, da bis jetzt der häufigste Fehler war, dass anstelle von Pfeil nach unten Pfeil nach rechts gedrückt habe. Und dann wären die Informationen weg. Daher möchte ich es nicht überschreiben, sondern nur aufzeigen.
 
Um Arrays zu erstellen gibt es mehrere Moeglichkeiten, hier zwei davon:
Code:
Sub muh()

    Dim i As Long
    Dim Array_Namen As Variant

    Array_Namen = Array("muh", "ha", "ha")          ' manuell zuweisen; 1 Dimensional
    'Array_Namen = Tabelle1.Range("A1:A3").Value    ' Matrix in Array laden (2 Dimensional)
    'ReDim Array_Namen(1, 3)                        ' Array Dimension anpassen (Spalte, Zeile)
    
    For i = 0 To 2
        MsgBox Array_Namen(i)                       ' Eintrag aufrufen
    Next i
    
End Sub

Zum Verstaendnis noch einmal:
Du bekommst eine Exceldatei, von jemand anderen, der sie nach einer Vorlage ausfuellt (aber nicht richtig).
Und du willst jetzt jede im Code aufgefuehrte Zelle auf einen individuell festen Inhalt prüfen?

Durch den individuellen Inhalt kommst du denke ich mal nicht um eine Vergleichsliste herum.

Weil ein Popup die Weiterverarbeitung behindert, wuerde ich eine alternative Vorschlagen:
Fehlerhafte Zellen einfach mit "Zelle.Interior.Color = RGB(255, 255, 153)" oder "Zelle.Interior.ColorIndex = 3" einfaerben.
Oder fehlerhafte Zellinhalte daneben kopieren und korrekten Inhalt setzen.

Ggf. noch ein "Formatreset"-Makro erstellen.



Allgemeiner Hinweis:
"else" in einer If-Abfrage ist Optional.
Da du keine alternative Anweisung gibst, kannst du es auch weglassen.

Eine Zelle mit "Sheets" aufzurufen ist die langsamste Methode und hat zu dem den Nachteil,
wenn jemand das Blatt umbenennt, ploppt ein Fehler auf.
Schneller und zuverlaessiger ist es, die VBA internen Bezeichnungen zu nutzen.
Diese sieht du im Projektbrowser in der VBA-Ebene bspw.:
"Tabelle1(Arbeitsblatt)" -> VBA interne Bezeichnung: "Tabelle1".
"Tabelle1.Range("A1")" waere dann die Schreibeweise zum Ansprechen.

Diese Bezeichnung lässt sich auch ueber die Eigenschaften "Name" des Blattes auch anpassen.


NACHTEIL: Mit dieser Schreibweise kann man nicht auf andere Mappen zugreifen.
Auf Zellebene ist Range() die langsamste Methode, ist aber i.d.R. uebersichtilicher als cells()

Mit "With" lassen sich Verweise abkuerzen.
Hilft haeufig den Code uebersichtlicher zu gestalten und beschleunigt das Ganze etwas.

Bsp.:
Code:
Tabelle1.cells(1,1).value = 1
Tabelle1.cells(1,1).Interior.Color = RGB(255, 255, 153)
Tabelle1.cells(1,1).Font.ColorIndex = 3

->

With Tabelle1.cells(1,1)
   .value = 1
   .Interior.Color = RGB(255, 255, 153)
   .Font.ColorIndex = 3
End With
 
Zuletzt bearbeitet: (Hinweis ergaenzt)
Du kannst dir auch ganz abgefahren, einen eigenen Dateitypen anlegen und diesen in ein eindimensionales Array packen :-)

Hier mal der ganze Code dazu (beschränkt auf die ersten 3 Einträge). Du musst halt immer noch die einzelnen Verweise erfassen und dein Array entsprechend anpassen. Mann könnte das Ganze auch in einem separaten Sheet anlegen und einlesen.

Dieses Makro schreibt alle Abweichungen in ein eigenes Array und wirft diese am Ende in einer Textbox aus.

Viel Spass beim Tüfteln...

Code:
Private Type AbfrageKombo
    Bereich As Range
    Wert    As Variant
End Type

Public Sub run()
Dim x As Integer
Dim ak(3) As AbfrageKombo

Dim strfehler() As String
ReDim strfehler(0)
Dim blFehler    As Boolean

With ThisWorkbook.Worksheets(1)
    Set ak(0).Bereich = .Range("A1")
        ak(0).Wert = "Belegnummer"
    Set ak(1).Bereich = .Range("A2")
        ak(1).Wert = "G-10023"
    Set ak(2).Bereich = .Range("A3")
        ak(2).Wert = "G-10023"
End With

For x = 0 To UBound(ak) - 1
    With ak(x)
        If .Bereich.Value = .Wert Then
        
        Else
            strfehler(UBound(strfehler)) = .Bereich.Address & " Wert " & .Bereich.Value & " statt " & .Wert
            ReDim Preserve strfehler(UBound(strfehler) + 1)
            blFehler = True
        End If
    End With
Next x

If blFehler Then
    For x = 0 To UBound(strfehler) - 1
        MsgBox strfehler(x)
    Next x
    
    Exit Sub
End If
End Sub
 
Danke für eure Antworten und sorry, das ich mich erst jetzt melde.

@Scientist
Weil ein Popup die Weiterverarbeitung behindert, wuerde ich eine alternative Vorschlagen:
Fehlerhafte Zellen einfach mit "Zelle.Interior.Color = RGB(255, 255, 153)" oder "Zelle.Interior.ColorIndex = 3" einfaerben.
Oder fehlerhafte Zellinhalte daneben kopieren und korrekten Inhalt setzen.

Das ist gewollt, dass es stehen bleibt. Denn es ist der geringere Aufwand so.
Denn das Dokument wird eben direkt weiterverarbeitet, also abgegliechen, ausgedruckt, separat gespeichert und geleert.
Code:
Sub SB_PaS_TB()
'
' Sagibeiz Makro
'
' Tastenkombination: Strg+Umschalt+S
'
' Überprüft, ob das Datum angepasst wurde.
    If Sheets("Arbeitsblatt").Range("B2").Value = Date Then
        MsgBox "Datum anpassen! " & vbCrLf & "(Tagesberichtdatum kann nicht aktuelles Datum sein.)" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
        GoTo DaUeOk
    End If
DaUeOk:
' Überprüft die Zellenintegrität.
    If Sheets("Arbeitsblatt").Range("A1").Value <> "Belegnummer" Then
        MsgBox "Integrität der Zelle A1 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A2").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A2 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A3").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A3 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A4").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A4 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A5").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A5 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A6").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A6 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A7").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A7 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A8").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A8 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A9").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A9 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A10").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A10 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A11").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A11 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A12").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A12 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A13").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A13 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A14").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A14 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A15").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A15 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A16").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A16 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A17").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A17 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A18").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A18 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("A19").Value <> "G-10023" Then
        MsgBox "Integrität der Zelle A19 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("B1").Value <> "Datum" Then
        MsgBox "Integrität der Zelle B1 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C1").Value <> "Soll-Konto" Then
        MsgBox "Integrität der Zelle C1 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C2").Value <> "10000" Then
        MsgBox "Integrität der Zelle C2 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C3").Value <> "10950" Then
        MsgBox "Integrität der Zelle C3 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C4").Value <> "10300" Then
        MsgBox "Integrität der Zelle C4 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C5").Value <> "20300" Then
        MsgBox "Integrität der Zelle C5 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C6").Value <> "10955" Then
        MsgBox "Integrität der Zelle C6 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C7").Value <> "66300" Then
        MsgBox "Integrität der Zelle C7 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C8").Value <> "10050" Then
        MsgBox "Integrität der Zelle C8 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C9").Value <> "10050" Then
        MsgBox "Integrität der Zelle C9 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C10").Value <> "10050" Then
        MsgBox "Integrität der Zelle C10 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C11").Value <> "10050" Then
        MsgBox "Integrität der Zelle C11 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C12").Value <> "10050" Then
        MsgBox "Integrität der Zelle C12 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C13").Value <> "10050" Then
        MsgBox "Integrität der Zelle C13 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C14").Value <> "10050" Then
        MsgBox "Integrität der Zelle C14 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C15").Value <> "10050" Then
        MsgBox "Integrität der Zelle C15 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C16").Value <> "10050" Then
        MsgBox "Integrität der Zelle C16 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C17").Value <> "10050" Then
        MsgBox "Integrität der Zelle C17 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C18").Value <> "10050" Then
        MsgBox "Integrität der Zelle C18 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("C19").Value <> "10050" Then
        MsgBox "Integrität der Zelle C19 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D1").Value <> "Haben-Konto" Then
        MsgBox "Integrität der Zelle D1 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D2").Value <> "10050" Then
        MsgBox "Integrität der Zelle D2 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D3").Value <> "10050" Then
        MsgBox "Integrität der Zelle D3 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D4").Value <> "10050" Then
        MsgBox "Integrität der Zelle D4 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D5").Value <> "10050" Then
        MsgBox "Integrität der Zelle D5 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D6").Value <> "10050" Then
        MsgBox "Integrität der Zelle D6 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D7").Value <> "10050" Then
        MsgBox "Integrität der Zelle D7 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D8").Value <> "31010" Then
        MsgBox "Integrität der Zelle D8 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D9").Value <> "31020" Then
        MsgBox "Integrität der Zelle D9 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D10").Value <> "31030" Then
        MsgBox "Integrität der Zelle D10 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D11").Value <> "31040" Then
        MsgBox "Integrität der Zelle D11 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D12").Value <> "31050" Then
        MsgBox "Integrität der Zelle D12 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D13").Value <> "32010" Then
        MsgBox "Integrität der Zelle D13 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D14").Value <> "32520" Then
        MsgBox "Integrität der Zelle D14 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D15").Value <> "32910" Then
        MsgBox "Integrität der Zelle D15 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D16").Value <> "32940" Then
        MsgBox "Integrität der Zelle D16 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D17").Value <> "34010" Then
        MsgBox "Integrität der Zelle D17 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D18").Value <> "20240" Then
        MsgBox "Integrität der Zelle D18 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("D19").Value <> "32930" Then
        MsgBox "Integrität der Zelle D19 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("E1").Value <> "Betrag Brutto" Then
        MsgBox "Integrität der Zelle E1 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F1").Value <> "Buchungstext" Then
        MsgBox "Integrität der Zelle F1 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F2").Value <> "Bar" Then
        MsgBox "Integrität der Zelle F2 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F3").Value <> "Debitor" Then
        MsgBox "Integrität der Zelle F3 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F4").Value <> "Kreditkarte" Then
        MsgBox "Integrität der Zelle F4 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F5").Value <> "Gutschein" Then
        MsgBox "Integrität der Zelle F5 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F6").Value <> "Essensbons" Then
        MsgBox "Integrität der Zelle F6 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F7").Value <> "Offeriert" Then
        MsgBox "Integrität der Zelle F7 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F8").Value <> "Ertrag Kaffee,Tee" Then
        MsgBox "Integrität der Zelle F8 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F9").Value <> "Ertrag Mineral" Then
        MsgBox "Integrität der Zelle F9 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F10").Value <> "Ertrag Bier" Then
        MsgBox "Integrität der Zelle F10 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F11").Value <> "Ertrag Wein" Then
        MsgBox "Integrität der Zelle F11 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F12").Value <> "Ertrag Spirituosen" Then
        MsgBox "Integrität der Zelle F12 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F13").Value <> "Ertrag Küche" Then
        MsgBox "Integrität der Zelle F13 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F14").Value <> "Ertrag Diverses" Then
        MsgBox "Integrität der Zelle F14 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F15").Value <> "Ertrag Take away" Then
        MsgBox "Integrität der Zelle F15 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F16").Value <> "Ertrag Chäsen" Then
        MsgBox "Integrität der Zelle F16 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F17").Value <> "Unterkunft" Then
        MsgBox "Integrität der Zelle F17 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F18").Value <> "Kurtaxe" Then
        MsgBox "Integrität der Zelle F18 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("F19").Value <> "Ertrag Zigarettenverkauf" Then
        MsgBox "Integrität der Zelle F19 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G1").Value <> "Kostenstelle" Then
        MsgBox "Integrität der Zelle G1 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G2").Value <> "" Then
        MsgBox "Integrität der Zelle G2 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G3").Value <> "" Then
        MsgBox "Integrität der Zelle G3 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G4").Value <> "" Then
        MsgBox "Integrität der Zelle G4 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G5").Value <> "" Then
        MsgBox "Integrität der Zelle G5 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G6").Value <> "" Then
        MsgBox "Integrität der Zelle G6 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G7").Value <> "20" Then
        MsgBox "Integrität der Zelle G7 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G8").Value <> "20" Then
        MsgBox "Integrität der Zelle G8 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G9").Value <> "20" Then
        MsgBox "Integrität der Zelle G9 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G10").Value <> "20" Then
        MsgBox "Integrität der Zelle G10 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G11").Value <> "20" Then
        MsgBox "Integrität der Zelle G11 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G12").Value <> "20" Then
        MsgBox "Integrität der Zelle G12 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G13").Value <> "20" Then
        MsgBox "Integrität der Zelle G13 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G14").Value <> "20" Then
        MsgBox "Integrität der Zelle G14 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G15").Value <> "20" Then
        MsgBox "Integrität der Zelle G15 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G16").Value <> "20" Then
        MsgBox "Integrität der Zelle G16 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G17").Value <> "20" Then
        MsgBox "Integrität der Zelle G17 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G18").Value <> "20" Then
        MsgBox "Integrität der Zelle G18 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("G19").Value <> "20" Then
        MsgBox "Integrität der Zelle G19 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H1").Value <> "MwSt. Code" Then
        MsgBox "Integrität der Zelle H1 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H2").Value <> "" Then
        MsgBox "Integrität der Zelle H2 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H3").Value <> "" Then
        MsgBox "Integrität der Zelle H3 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H4").Value <> "" Then
        MsgBox "Integrität der Zelle H4 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H5").Value <> "" Then
        MsgBox "Integrität der Zelle H5 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H6").Value <> "" Then
        MsgBox "Integrität der Zelle H6 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H7").Value <> "21u" Then
        MsgBox "Integrität der Zelle H7 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H8").Value <> "01u" Then
        MsgBox "Integrität der Zelle H8 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H9").Value <> "01u" Then
        MsgBox "Integrität der Zelle H9 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H10").Value <> "01u" Then
        MsgBox "Integrität der Zelle H10 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H11").Value <> "01u" Then
        MsgBox "Integrität der Zelle H11 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H12").Value <> "01u" Then
        MsgBox "Integrität der Zelle H12 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H13").Value <> "01u" Then
        MsgBox "Integrität der Zelle H13 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H14").Value <> "01u" Then
        MsgBox "Integrität der Zelle H14 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H15").Value <> "02u" Then
        MsgBox "Integrität der Zelle H15 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H16").Value <> "01u" Then
        MsgBox "Integrität der Zelle H16 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H17").Value <> "03u" Then
        MsgBox "Integrität der Zelle H17 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H18").Value <> "" Then
        MsgBox "Integrität der Zelle H18 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
    If Sheets("Arbeitsblatt").Range("H19").Value <> "01u" Then
        MsgBox "Integrität der Zelle H19 gestört!" & vbCrLf & "Makro abgebrochen!"
        GoTo Ende
    Else
    End If
' Überprüft Aktiv zu Ertragskonten.
    Dim curAktivkonti As Currency
    Dim curPassikonti As Currency
    curAktivkonti = WorksheetFunction.Sum(Range("E2:E7"))
    curPassikonti = WorksheetFunction.Sum(Range("E8:E19"))
    If curAktivkonti = curPassikonti Then
        GoTo Abgleichbestanden
    ElseIf curAktivkonti < curPassikonti Then
        MsgBox "Aktivkontis " & curPassikonti - curAktivkonti & " kleiner als Ertragskontis!"
        GoTo Ende
    ElseIf curAktivkonti > curPassikonti Then
        MsgBox "Ertragskontis " & curAktivkonti - curPassikonti & " kleiner als Aktivkontis!"
        GoTo Ende
    End If
Abgleichbestanden:
' Verschiebt für Buchung relevanter Inhaltsbereich um eine Zelle nach unten.
    Range("A1").CurrentRegion.Select
    Selection.Cut Destination:=Range("A2")
    Range("A2").CurrentRegion.Select
' Wählt den Bereich A1:C1 aus, und verbindet ihn.
    Range("A1:C1").Select
    Range("C1").Activate
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Selection.Merge
' Schreibt den Titel in die nun verbundene Titelzelle.
    Range("A1").Select
    Range("A1").Activate
    ActiveCell.FormulaR1C1 = "TAGESBERICHT SAGIBEIZ"
' Wählt den Bereich F1:G1 aus, und verbindet ihn.
    Range("F1:G1").Select
    Range("G1").Activate
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Selection.Merge
' Wählt den Bereich F1 aus, und schreibt "Erstellt am:" hinein.
    Range("F1").Select
    Range("F1").Activate
    ActiveCell.FormulaR1C1 = "Erstellt am:"
' Wählt den Bereich H1 aus, und schreibt die Funktion für das aktuelle/heutige Datum hinein hinein.
    Range("H1").Select
    Range("H1").Activate
    ActiveCell.FormulaR1C1 = "=TODAY()"
    Selection.UnMerge
' Wählt den Bereich der ersten Zeile mit Inhalten aus, und macht dessen Schrift grösser und fett.
    Range("A1:H1").Select
    Range("H1").Activate
    Selection.Font.Size = 14
    Selection.Font.Bold = True
' Platzhalter für Nullercheck und Zeilen Auslöschung.
    If Sheets("Arbeitsblatt").Range("E4").Value = "0" Or Sheets("Arbeitsblatt").Range("E4").Value = "" Then
        Range("A4:H4").Clear
    Else
    End If
    If Sheets("Arbeitsblatt").Range("E5").Value = "0" Or Sheets("Arbeitsblatt").Range("E5").Value = "" Then
        Range("A5:H5").Clear
    Else
    End If
    If Sheets("Arbeitsblatt").Range("E6").Value = "0" Or Sheets("Arbeitsblatt").Range("E6").Value = "" Then
        Range("A6:H6").Clear
    Else
    End If
    If Sheets("Arbeitsblatt").Range("E7").Value = "0" Or Sheets("Arbeitsblatt").Range("E7").Value = "" Then
        Range("A7:H7").Clear
    Else
    End If
    If Sheets("Arbeitsblatt").Range("E8").Value = "0" Or Sheets("Arbeitsblatt").Range("E8").Value = "" Then
        Range("A8:H8").Clear
    Else
    End If
    If Sheets("Arbeitsblatt").Range("E9").Value = "0" Or Sheets("Arbeitsblatt").Range("E9").Value = "" Then
        Range("A9:H9").Clear
    Else
    End If
    If Sheets("Arbeitsblatt").Range("E10").Value = "0" Or Sheets("Arbeitsblatt").Range("E10").Value = "" Then
        Range("A10:H10").Clear
    Else
    End If
    If Sheets("Arbeitsblatt").Range("E11").Value = "0" Or Sheets("Arbeitsblatt").Range("E11").Value = "" Then
        Range("A11:H11").Clear
    Else
    End If
    If Sheets("Arbeitsblatt").Range("E12").Value = "0" Or Sheets("Arbeitsblatt").Range("E12").Value = "" Then
        Range("A12:H12").Clear
    Else
    End If
    If Sheets("Arbeitsblatt").Range("E13").Value = "0" Or Sheets("Arbeitsblatt").Range("E13").Value = "" Then
        Range("A13:H13").Clear
    Else
    End If
    If Sheets("Arbeitsblatt").Range("E14").Value = "0" Or Sheets("Arbeitsblatt").Range("E14").Value = "" Then
        Range("A14:H14").Clear
    Else
    End If
    If Sheets("Arbeitsblatt").Range("E15").Value = "0" Or Sheets("Arbeitsblatt").Range("E15").Value = "" Then
        Range("A15:H15").Clear
    Else
    End If
    If Sheets("Arbeitsblatt").Range("E16").Value = "0" Or Sheets("Arbeitsblatt").Range("E16").Value = "" Then
        Range("A16:H16").Clear
    Else
    End If
    If Sheets("Arbeitsblatt").Range("E17").Value = "0" Or Sheets("Arbeitsblatt").Range("E17").Value = "" Then
        Range("A17:H17").Clear
    Else
    End If
    If Sheets("Arbeitsblatt").Range("E18").Value = "0" Or Sheets("Arbeitsblatt").Range("E18").Value = "" Then
        Range("A18:H18").Clear
    Else
    End If
    If Sheets("Arbeitsblatt").Range("E19").Value = "0" Or Sheets("Arbeitsblatt").Range("E19").Value = "" Then
        Range("A19:H19").Clear
    Else
    End If
    If Sheets("Arbeitsblatt").Range("E20").Value = "0" Or Sheets("Arbeitsblatt").Range("E20").Value = "" Then
        Range("A20:H20").Clear
    Else
    End If
' Löscht Nuller raus.
    Dim Zeile As Long
    Dim ZeileMax As Long
    With Tabelle1
    ZeileMax = .UsedRange.Rows.Count
        For Zeile = ZeileMax To 1 Step -1
            If .Cells(Zeile, 1).Value = "" Then
                .Rows(Zeile).Delete
            End If
        Next Zeile
    End With
' Wählt den für Buchung relevanter Inhaltsbereich aus, und definiert die Querlinien.
    Range("A1").CurrentRegion.Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    With Selection.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
' Wählt den Bereich der ersten Zeile mit Inhalten aus, und macht eine fette Underline-Linie.
    Range("A1:H1").Select
    Range("H1").Activate
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlMedium
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlMedium
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    With Selection.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
' Wählt den Bereich der ersten Zeile mit Inhalten aus, und macht den Hintergrund schwarz und die Schrift weiss.
    Range("A1:H1").Select
    Range("H1").Activate
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorLight1
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    With Selection.Font
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = 0
    End With
' Passt die Breite der Spalten an.
    Columns("A:A").EntireColumn.AutoFit
    Columns("B:B").EntireColumn.AutoFit
    Columns("C:C").EntireColumn.AutoFit
    Columns("D:D").EntireColumn.AutoFit
    Columns("E:E").EntireColumn.AutoFit
    Columns("F:F").EntireColumn.AutoFit
    Columns("G:G").EntireColumn.AutoFit
    Columns("H:H").EntireColumn.AutoFit
' Druckt den Bericht, mit angepasster Skalierung aus.
    Range("A1:H20").Select
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .PrintTitleRows = ""
        .PrintTitleColumns = ""
    End With
    Application.PrintCommunication = True
    ActiveSheet.PageSetup.PrintArea = ""
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = ""
        .RightFooter = ""
        .LeftMargin = Application.InchesToPoints(0.708661417322835)
        .RightMargin = Application.InchesToPoints(0.708661417322835)
        .TopMargin = Application.InchesToPoints(0.78740157480315)
        .BottomMargin = Application.InchesToPoints(0.78740157480315)
        .HeaderMargin = Application.InchesToPoints(0.31496062992126)
        .FooterMargin = Application.InchesToPoints(0.31496062992126)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintSheetEnd
        .PrintQuality = -2
        .CenterHorizontally = False
        .CenterVertically = False
        .Orientation = xlPortrait
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 1
        .PrintErrors = xlPrintErrorsDisplayed
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = False
        .ScaleWithDocHeaderFooter = True
        .AlignMarginsHeaderFooter = True
        .EvenPage.LeftHeader.Text = ""
        .EvenPage.CenterHeader.Text = ""
        .EvenPage.RightHeader.Text = ""
        .EvenPage.LeftFooter.Text = ""
        .EvenPage.CenterFooter.Text = "Generiert mit DR_VBA_TB-Makro v2"
        .EvenPage.RightFooter.Text = ""
        .FirstPage.LeftHeader.Text = ""
        .FirstPage.CenterHeader.Text = ""
        .FirstPage.RightHeader.Text = ""
        .FirstPage.LeftFooter.Text = ""
        .FirstPage.CenterFooter.Text = ""
        .FirstPage.RightFooter.Text = ""
    End With
    Application.PrintCommunication = True
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
' Löscht die erste Zeile.
    Range("A1:H1").Select
    Selection.ClearContents
    With Selection.Interior
        .Pattern = xlNone
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    With Selection.Font
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
    End With
' Setzt die Formatierung der ersten Zeile zurück.
    Range("A1:H1").Select
    Selection.UnMerge
' Markiert den für die Buchungen relevanten Bereich und verschiebt in zurück.
    Range("A2:H20").Select
    Range("H20").Activate
    Range("A2:H20").Cut Destination:=Range("A1:H19")
    Range("A1:H19").Select
' Entfernt sämtliche Trennlinien.
    Range("A1:H22").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    Selection.Borders(xlEdgeLeft).LineStyle = xlNone
    Selection.Borders(xlEdgeTop).LineStyle = xlNone
    Selection.Borders(xlEdgeBottom).LineStyle = xlNone
    Selection.Borders(xlEdgeRight).LineStyle = xlNone
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
' Speichert die Datei als Kopie als ".csv" im vorgesehen Verzeichnis ab, mit Datum aus Zelle.
    ActiveSheet.Copy
    ActiveWorkbook.SaveAs "C:\Users\dr\Documents\Gastrofix\Sagibeiz\offen\Makro Gastrofix Sagibeiz " & Range("B2").Value & ".csv", FileFormat:= _
        xlCSVUTF8, CreateBackup:=False, Local:=True
    ActiveWorkbook.Close
    MsgBox "Dateiname: Makro Gastrofix Sagibeiz " & Range("B2").Value & vbLf & vbLf & strDateiname, vbOKOnly + vbInformation, "Datei wurde gespeichert:"
' Kopiert die Referenz ins Arbeitsblatt.
    Sheets("Referenz").Select
    Range("A1:H19").Select
    Range("H19").Activate
    Selection.Copy
    Sheets("Arbeitsblatt").Select
    Range("A1").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
' Passt die Breite der Spalten an.
    Columns("A:A").EntireColumn.AutoFit
    Columns("B:B").EntireColumn.AutoFit
    Columns("C:C").EntireColumn.AutoFit
    Columns("D:D").EntireColumn.AutoFit
    Columns("E:E").EntireColumn.AutoFit
    Columns("F:F").EntireColumn.AutoFit
    Columns("G:G").EntireColumn.AutoFit
    Columns("H:H").EntireColumn.AutoFit
' Sprungmarke für "goto".
Ende:
End Sub

Eine Zelle mit "Sheets" aufzurufen ist die langsamste Methode und hat zu dem den Nachteil,
wenn jemand das Blatt umbenennt, ploppt ein Fehler auf.
Da nur ich das Dok verwende und der Drucker stink langsam ist, ist das eigentlich egal.

Da ich allerdings das Makro für verschiedene Doks (weil verschiedene Lokale mit anderen Kontis) verwende, war es so einfacher, da ich immer ein Arbeitsblatt- und eine Referenzmappe verwende.

Kannst du mir noch erklären, wo ich den Abgleich einringen muss?

@Janush
Das tut soweit ganz gut, ABER nur wenn ich es in einem eigenen Modul habe, und keine weiteren Makros darin, woran könnte das liegen?
 
Zurück
Oben