Office: (Office 2013) Syntaxfehler/Fehler beim Kompilieren

Helfe beim Thema Syntaxfehler/Fehler beim Kompilieren in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo ich habe ein VBA geschrieben, der folgende bewirken soll: Wenn in F14, F16 und G14 ein Wert steht (unabhängig welcher Wert) soll sich G15... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Naddus0207, 24. Oktober 2016.

  1. Naddus0207 Erfahrener User

    Syntaxfehler/Fehler beim Kompilieren


    Hallo ich habe ein VBA geschrieben, der folgende bewirken soll:

    Wenn in F14, F16 und G14 ein Wert steht (unabhängig welcher Wert) soll sich G15 entsperren,
    wenn in G15 das Ergebnis von G14/F14 gerundet auf 2 Nachkommastellen steht soll sich G16 entsperren,
    wenn in F28, F30 und G28 ein Wert steht (unabhängig welcher Wert) soll sich G29 entsperren,
    wenn in G29 das Ergebnis von G28*F28 gerundet auf 2 Nachkommastellen steht soll sich G30 entsperren,
    wenn in L14, L15 und M14 ein Wert steht (unabhängig welcher Wert) soll sich P14 entsperren
    wenn in L14, L15 und M14 ein Wert steht (unabhängig welcher Wert) soll sich wiederum G15 sperren
    wenn in L28, L29 und M28 ein Wert steht (unabhängig welcher Wert) soll sich P28 entsperren
    wenn in L28, L29 und M28 ein Wert steht (unabhängig welcher Wert) soll sich wiederum G29 sperren

    folgendermaßen sieht mein Code aus:

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Range("F14") <> "" And Range("G14") <> "" And Range ("F16") <> Then
                ActiveSheet.Unprotect ("123")
                Range("G15").Locked = False
                ActiveSheet.Protect ("123")
            End If
        If Target.Cells(1).Address(False, False) = "G15" Then
            If Target = Application.Round(Range("G14") / Range("F14"), 2) Then
                ActiveSheet.Unprotect ("123")
                Range("G16").Locked = False
                Range("G16").Select
                ActiveSheet.Protect ("123")
            End If
        If Range("F28") <> "" And Range("G28") <> "" And Range ("F30") <> Then
                ActiveSheet.Unprotect ("123")
                Range("G29").Locked = False
                ActiveSheet.Protect ("123")
            End If
        If Target.Cells(1).Address(False, False) = "G29" Then
            If Target = Application.Round(Range("G28") * Range("F28"), 2) Then
                ActiveSheet.Unprotect ("123")
                Range("G30").Locked = False
                Range("G30").Select
                ActiveSheet.Protect ("123")
            End If
        If Range("L14") <> "" And Range("M14") <> "" And Range("L15") <> "" Then
                ActiveSheet.Unprotect ("123")
                Range("P14").Locked = False
                ActiveSheet.Protect ("123")
            End If
        If Range("L28") <> "" And Range("M28") <> "" And Range("L29") <> "" Then
                ActiveSheet.Unprotect ("123")
                Range("P28").Locked = False
                ActiveSheet.Protect ("123")
            End If
        If Range("L14") <> "" And Range("M14") <> "" And Range("L15") <> "" Then
                ActiveSheet.Unprotect ("123")
                Range("G15").Locked = True
                ActiveSheet.Protect ("123")
            End If
        If Range("L28") <> "" And Range("M28") <> "" And Range("L29") <> "" Then
                ActiveSheet.Unprotect ("123")
                Range("G29").Locked = True
                ActiveSheet.Protect ("123")
            End If
        End If
    End Sub
    Hier bekomme ich immer einen Syntaxfehler. Ich vermute mal, dass liegt daran, dass ich nicht 2 And Bedingungen hintereinander schalten kann.

    Also habe ich den Code mal folgenden Bedingungen angepasst:
    Wenn in F14, und G14 ein Wert steht (unabhängig welcher Wert) soll sich G15 entsperren,
    wenn in G15 das Ergebnis von G14/F14 gerundet auf 2 Nachkommastellen steht soll sich G16 entsperren,
    wenn in F28, und G28 ein Wert steht (unabhängig welcher Wert) soll sich G29 entsperren,
    wenn in G29 das Ergebnis von G28*F28 gerundet auf 2 Nachkommastellen steht soll sich G30 entsperren,
    wenn in L14 und M14 ein Wert steht (unabhängig welcher Wert) soll sich P14 entsperren
    wenn in L14 und M14 ein Wert steht (unabhängig welcher Wert) soll sich wiederum G15 sperren
    wenn in L28 und M28 ein Wert steht (unabhängig welcher Wert) soll sich P28 entsperren
    wenn in L28 und M28 ein Wert steht (unabhängig welcher Wert) soll sich wiederum G29 sperren

    so sieht mein Code dazu aus:

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Range("F14") <> "" And Range("G14") <> "" Then
                ActiveSheet.Unprotect ("123")
                Range("G15").Locked = False
                ActiveSheet.Protect ("123")
            End If
        If Target.Cells(1).Address(False, False) = "G15" Then
            If Target = Application.Round(Range("G14") / Range("F14"), 2) Then
                ActiveSheet.Unprotect ("123")
                Range("G16").Locked = False
                Range("G16").Select
                ActiveSheet.Protect ("123")
            End If
        If Range("F28") <> "" And Range("G28") <> "" Then
                ActiveSheet.Unprotect ("123")
                Range("G29").Locked = False
                ActiveSheet.Protect ("123")
            End If
        If Target.Cells(1).Address(False, False) = "G29" Then
            If Target = Application.Round(Range("G28") * Range("F28"), 2) Then
                ActiveSheet.Unprotect ("123")
                Range("G30").Locked = False
                Range("G30").Select
                ActiveSheet.Protect ("123")
            End If
        If Range("L14") <> "" And Range("M14") <> "" Then
                ActiveSheet.Unprotect ("123")
                Range("P14").Locked = False
                ActiveSheet.Protect ("123")
            End If
        If Range("L28") <> "" And Range("M28") <> "" Then
                ActiveSheet.Unprotect ("123")
                Range("P28").Locked = False
                ActiveSheet.Protect ("123")
            End If
        If Range("L14") <> "" And Range("M14") <> "" Then
                ActiveSheet.Unprotect ("123")
                Range("G15").Locked = True
                ActiveSheet.Protect ("123")
            End If
        If Range("L28") <> "" And Range("M28") <> "" Then
                ActiveSheet.Unprotect ("123")
                Range("G29").Locked = True
                ActiveSheet.Protect ("123")
            End If
        End If
    End Sub
    Da bekomme ich dann immer den Fehler:

    Fehler beim Kompilieren:
    If-Block ohne End-If

    Kann mir jemand sagen, wo der Fehler liegt?
     
    Zuletzt bearbeitet: 24. Oktober 2016
    Naddus0207, 24. Oktober 2016
    #1
  2. Naddus0207 Erfahrener User
    Also beim ersten Code habe ich schon mal ein paar Fehler gefunden und habe ihn folgendermaßen angepasst:

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Range("F14") <> "" And Range("G14") <> "" And Range("F16") <> "" Then
                ActiveSheet.Unprotect ("123")
                Range("G15").Locked = False
                ActiveSheet.Protect ("123")
            End If
        If Target.Cells(1).Address(False, False) = "G15" Then
            If Target = Application.Round(Range("G14") / Range("F14"), 2) Then
                ActiveSheet.Unprotect ("123")
                Range("G16").Locked = False
                Range("G16").Select
                ActiveSheet.Protect ("123")
            End If
        If Range("F28") <> "" And Range("G28") <> "" And Range("F30") <> "" Then
                ActiveSheet.Unprotect ("123")
                Range("G29").Locked = False
                ActiveSheet.Protect ("123")
            End If
        If Target.Cells(1).Address(False, False) = "G29" Then
            If Target = Application.Round(Range("G28") * Range("F28"), 2) Then
                ActiveSheet.Unprotect ("123")
                Range("G30").Locked = False
                Range("G30").Select
                ActiveSheet.Protect ("123")
            End If
        If Range("L14") <> "" And Range("M14") <> "" And Range("L15") <> "" Then
                ActiveSheet.Unprotect ("123")
                Range("P14").Locked = False
                ActiveSheet.Protect ("123")
            End If
        If Range("L28") <> "" And Range("M28") <> "" And Range("L29") <> "" Then
                ActiveSheet.Unprotect ("123")
                Range("P28").Locked = False
                ActiveSheet.Protect ("123")
            End If
        If Range("L14") <> "" And Range("M14") <> "" And Range("L15") <> "" Then
                ActiveSheet.Unprotect ("123")
                Range("G15").Locked = True
                ActiveSheet.Protect ("123")
            End If
        If Range("L28") <> "" And Range("M28") <> "" And Range("L29") <> "" Then
                ActiveSheet.Unprotect ("123")
                Range("G29").Locked = True
                ActiveSheet.Protect ("123")
            End If
        End If
    End Sub
    Aber dann bekomme ich auch den Kompilieren Fehler angezeigt, wenn ich ihn so eingebe. Syntaxfehler/Fehler beim Kompilieren :confused:
     
    Naddus0207, 24. Oktober 2016
    #2
  3. Naddus0207 Erfahrener User
    Thema kann geschlossen werden, habe die Lösung selber raus gefunden.
     
    Naddus0207, 25. Oktober 2016
    #3
Thema:

Syntaxfehler/Fehler beim Kompilieren

Die Seite wird geladen...
  1. Syntaxfehler/Fehler beim Kompilieren - Similar Threads - Syntaxfehler Fehler Kompilieren

  2. Ich sehe den Syntaxfehler nicht!

    in Microsoft Excel Hilfe
    Ich sehe den Syntaxfehler nicht!: Hallo zusammen! Ich sitz schon eine halbe Stunde davor und sehe einfach diesen Syntaxfehler nicht! Sieht ihn jemand von euch? Code: Range("B3").FormulaR1C1 = _...
  3. Syntaxfehler

    in Microsoft Excel Hilfe
    Syntaxfehler: Moin Moin zusammen, ich hab grad Tomaten auf den Augen. Der Akzeptiert die Syntax mit Verweis auf die "AdvancedFiltermethode des Range Objektes konnte nicht ausgeführt werden" Aber irgendwie tue...
  4. Syntaxfehler

    in Microsoft Access Hilfe
    Syntaxfehler: Hallo, auf meinen Befehl erhalte ich die Information "Syntaxfehler im Abfrageausdruck". Beide Felder sind Textfelder. Code: Dim strSQL As String strSQL = "SELECT * FROM abfr_Adressen_3 " strSQL =...
  5. Syntaxfehler in JOIN-Operation

    in Microsoft Access Hilfe
    Syntaxfehler in JOIN-Operation: Guten Tag, Ich habe mal wieder ein kleines Problem, bei dem Google mir leider nicht weiterhelfen konnte. Vorweg: ich habe nach der Vorlage CreaKombi gearbeitet, die ich im Anhang mit hochgeladen...
  6. Syntaxfehler in From-Klausel

    in Microsoft Access Hilfe
    Syntaxfehler in From-Klausel: Hallo Leute. Ich habe ein kleines Problem, das ich nicht selbst lösen kann. Ich habe eine Datenbank die unter anderem eine Kundentabelle enthält. Außerdem existiert eine übergeordnete Kunden-DB...
  7. Syntaxfehler in Datum in Abfrageausdruck

    in Microsoft Access Hilfe
    Syntaxfehler in Datum in Abfrageausdruck: Hallo, leider habe ich ein Problem mit einem Datumsfeld in einer Insert Into Anweisung unter Access. Das Feld in das eingefügt wird, ist ein Datumsfeld, und ich übernehme das aktuelle Datum per...
  8. Fehler beim Komprimieren: Syntaxfehler

    in Microsoft Word Hilfe
    Fehler beim Komprimieren: Syntaxfehler: Moin alle mit einander, ich hätte hier ein kleines Problem mit der Makroprogrammierung und komm nich weiter. Ich nutze eine Office 2007 Version und wollte ein Makro nutzen, das mich automatisch...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden