Problem mit via Code in einer anderen CodeTabelle schreiben.

  • Excel

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von KappeHD.

    Problem mit via Code in einer anderen CodeTabelle schreiben.

    Guten Tag,
    Ich habe zurzeit folgendes Problem das ich in einer Prozedur etwas in einer neu erzeugten Tabelle Schreiben will leider klappt dies nicht und er zeigt mir ein Fehler an.
    Fehler lautet : Fehler beim Kompilieren: Erwartet: Anweisungsende
    Ich hab schon mehrmals versucht herauszufinden woran es liegt nur entweder bin ich Blind oder Dumm^^ ;D




    Sub NeuesWorksheet()
    Dim ws As Worksheet
    If Worksheets("Start").Range("B4").Value = "" Then
    MsgBox "Bitte geben sie das Schuljahr an."
    Else
    Set ws = ThisWorkbook.Worksheets.Add
    ws.Name = Worksheets("Start").Range("B4").Value
    Worksheets("Start").Range("B4").Value = ""
    ActiveSheet.Move _
    After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
    End If
    Call TabelleFormatieren
    With ThisWorkbook.VBProject.VBComponents(Worksheets(ws).CodeName).CodeModule
    LineNr = .CreateEventProc("Change", "Worksheet")
    .InsertLines LineNr + 1, "Private Sub Worksheet_Change(ByVal Target As Range)"
    .InsertLines LineNr + 2, "If Not Application.Intersect(Target, Range("B2:P15")) Is Nothing Then" ' Hier wird mir der Fehler Angezeigt bei "B2".
    .InsertLines LineNr + 3, "Call Prüfen: Call DurchschnittBerechnen: Call Einfärben"
    .InsertLines LineNr + 4, "End If"
    .InsertLines LineNr + 5, "End Sub"
    End With
    End Sub
    Das liegt daran, dass in dem String nochmal Anführungszeichen vorkommen. Diese müsste man maskieren, was in VBA allerdings nicht geht. Du musst es daher so machen:

    Visual Basic-Quellcode

    1. .InsertLines LineNr + 2, "If Not Application.Intersect(Target, Range(" & chr$(34) & "B2:P15" & chr$(34) & ")) Is Nothing Then"
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum