Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Fehler beim Kompilieren - Syntaxfehler

Fehler beim Kompilieren - Syntaxfehler
23.02.2009 20:49:47
Castor-Pollux
Hallo,
ich arbeite gerade an der Restaurierung eines EXCEL-Tabellenblattes, dass unter Office 2000 einwandfrei lief und jetzt unter Office 2007 ein paar Macken hat.
Hier im Forum habe ich mir schon ein VBA-Projekt angesehen, dass mein Problem in etwa trifft. Nur leider habe ich von VBA überhaupt keine Ahnung und jetzt habe ich die Fehlermeldung "Fehler beim Kompilieren - Syntaxfehler".
Ich zeige hier mal die Datei, wie ich sie für mich umgestrickt habe (Ziel ist es, nicht gesperrte Zellen via TAB-Taste anzuspringen):
Modul 1:
Option Explicit
Option Base 1
Dim intIndex As Integer
Sub Makro1()
Dim arr
intIndex = intIndex + 1
arr = Array("j10", "n10", "c14", "d14", "h14", "i14", "c15", "d15", "h15", "c16", "d16", "h16", "i16", "c17", "d17", "h17", "i17", "c18", "d18", "h18", "i18", "k18", "c19", "d19", "h19", "i19", "k19", "d21", "d22", "e21", "e22", "f21", "f22", "g21", "g22", "h21", "h22", "i21", "i22", "j21", "j22",
"e23", "d24", "d25", "e24","e25", "f24", "f25", "g24", "g25", "h24", "h25", "i24", "i25", "j24", "j25", "e26", "d27", "d28", "e27", "e28", "f27", "f28", "g27", "g28", "h27", "h28", "i27", "i28", "j27", "j28", "o27", "d30", "d31", "e30", "e31", "f30", "f31", "g30", "g31", "h30", "h31", "i30", "i31", "j30", "j31", "k29", "g32", "d33", "d34", "e33", "e34", "f33", "f34", "g33", "g34", "h33", "h34", "i33", "i34", "j33", "j34", "d36", "d37", "e36", "e37", "f36", "f37", "g36", "g37", "h36", "h37", "i36", "i37", "j36", "j37", "m29", "n29", "o29", "p29", "q29", "r29", "m30", "n30", "o30", "p30", "q30", "r30", "m31", "n32", "o31", "p31", "q31", "r31", "m32", "n32", "o32", "p32", "q32", "r32", "m33", "n33", "o33", "o34", "o35", "m37", "n37", "o37", "p37", "q37", "r37", "m38", "n38", "o38", "p38", "q38", "r38", "m39", "n39", "o39", "p39", "q39", "r39", "m40", "n40", "o40", "o41", "c40", "c44", "i42", "o46", "m47", "m51", "m17", "m19")
Range(arr(intIndex)).Select
'-------------------------------------------------
'Nur als Demo, kann weg!
'ActiveCell = ActiveCell.Address(0, 0)
'-------------------------------------------------
If intIndex = 175 Then intIndex = 0
End Sub


Tabelle1
Option Explicit


Private Sub Worksheet_Activate()
[e5].Select
Application.OnKey "{TAB}", "Makro1"
End Sub



Private Sub Worksheet_Deactivate()
Application.OnKey "{TAB}"
End Sub


Tabelle2
Option Explicit
Wenn mir hier jemand einen Rat geben könnte, fände ich dies Prima!
Danke im Voraus.
MfG
Ca-Po

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler beim Kompilieren - Syntaxfehler
23.02.2009 20:56:01
Ramses
Hallo
Es wäre hiflreicher wenn du beschreiben würdest, was du erreichen willst.
Das Makro das du hier zeigst macht ja eigentlich nichts
Gruss Rainer
AW: Fehler beim Kompilieren - Syntaxfehler
23.02.2009 21:02:07
Gerd
Hallo Ca-Po,
starte das Makro mal im Codefenster mit der F8-Taste im Einzelschrittmodus.
Welche Fehlermeldung erscheint in welcher Codezeile?
Gruß Gerd
Anzeige
AW: Fehler beim Kompilieren - Syntaxfehler
23.02.2009 21:25:16
Josef
Hallo Capi,
in deinem Array hast du ei en fehler mit den (").
Ich würde es so lösen.
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Activate()
  Application.OnKey "{TAB}", "TabTab"
End Sub


Private Sub Worksheet_Deactivate()
  Application.OnKey "{TAB}"
End Sub

' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Private intIndex As Integer

Private Const cstrRange As String = "j10,n10,c14,d14,h14,i14,c15,d15,h15,c16,d16,h16,i16,c17," & _
  "d17,h17,i17,c18,d18,h18,i18,k18,c19,d19,h19,i19,k19,d21,d22,e21,e22,f21,f22,g21,g22,h21,h22," & _
  "i21,i22,j21,j22,e23,d24,d25,e24,e25,f24,f25,g24,g25,h24,h25,i24,i25,j24,j25,e26,d27,d28,e27," & _
  "e28,f27,f28,g27,g28,h27,h28,i27,i28,j27,j28,o27,d30,d31,e30,e31,f30,f31,g30,g31,h30,h31,i30," & _
  "i31,j30,j31,k29,g32,d33,d34,e33,e34,f33,f34,g33,g34,h33,h34,i33,i34,j33,j34,d36,d37,e36,e37," & _
  "f36,f37,g36,g37,h36,h37,i36,i37,j36,j37,m29,n29,o29,p29,q29,r29,m30,n30,o30,p30,q30,r30,m31,n32," & _
  "o31,p31,q31,r31,m32,n32,o32,p32,q32,r32,m33,n33,o33,o34,o35,m37,n37,o37,p37,q37,r37,m38,n38,o38," & _
  "p38,q38,r38,m39,n39,o39,p39,q39,r39,m40,n40,o40,o41,c40,c44,i42,o46,m47,m51,m17,m19"

Public Sub TabTab()
  Dim arr() As String
  
  arr = Split(cstrRange, ",")
  Range(arr(intIndex)).Select
  intIndex = intIndex + 1
  
  If intIndex > UBound(arr) Then intIndex = 0
End Sub

Gruß Sepp

Anzeige
AW: Fehler beim Kompilieren - Syntaxfehler
25.02.2009 20:29:21
Castor-Pollux
Hallo Sepp,
vielen Dank für deinen Tipp. Hat funktioniert. Jetzt habe ich nur noch ein Problem:
Wenn ich diesen VBA-Code für in einer Tabelle geschrieben habe, öffnet sich bei einer ähnlichen dieselbe Tabelle nochmal im Hintergrund. Ich hätte aber gerne, dass nur immer ein aktuelles Tabellenblatt mit diesem VBA-Code funktioniert, auch wenn der Inhalt sich im wesentlichen nicht ändert.
Geht das?
Danke im Voraus.
Gruß
Ca-Po
Anzeige
AW: Fehler beim Kompilieren - Syntaxfehler
25.02.2009 22:01:12
Bahnhof
Hallo Capo,
also ich verstehe deine Frage kein bisschen.
Erkläre bitte dein Problem verständlicher.
Gruß Sepp

AW: Fehler beim Kompilieren - Syntaxfehler
26.02.2009 19:10:25
Castor-Pollux
Hallo Sepp,
ich versuche es mal deutlicher zu machen:
in Tabelle A habe ich den VBA-Code eingeben. Eine weitere Tabelle B, die fast gleichbenannt ist, unterscheidet sich darin, dass dort für die User die freien Zelle (die mit TAB anzuspringen sein sollen) farbig markiert sind. Wenn ich nun für die Tabelle B diesen VBA-Code eingebe, möchte ich, dass auch nur Tabelle B aktiv ist. Leider hat es sich ergeben, das beim Aufruf der Tabelle B, Tabelle A geöffnet wird - eben das soll nicht geschehen.
Ich hoffe, es ist jetzt klarer geworden.
MfG
Ca-Po
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Fehler beim Kompilieren - Syntaxfehler in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den Microsoft Visual Basic for Applications (VBA) Editor zu öffnen.
  2. Finde das fehlerhafte Modul:

    • Suche im Projekt-Explorer nach dem Modul, in dem du den Code eingegeben hast.
  3. Identifiziere den Syntaxfehler:

    • Klicke auf das Modul und überprüfe, ob die Fehlermeldung "Fehler beim Kompilieren - Syntaxfehler" erscheint. Diese kann auf ein Problem mit der Schreibweise oder der Struktur des Codes hinweisen.
  4. Behebe den Fehler:

    • Überprüfe die Zeile, die als fehlerhaft angezeigt wird. Achte darauf, dass alle Variablen korrekt deklariert sind und dass die Syntax den Regeln von VBA entspricht.
  5. Teste den Code:

    • Starte das Makro im Einzelschrittmodus mit der F8-Taste, um genau zu sehen, wo der Fehler auftritt.

Häufige Fehler und Lösungen

  • Fehlerhafte Anführungszeichen:

    • Ein häufiger Fehler ist die Verwendung von falschen oder fehlenden Anführungszeichen. Stelle sicher, dass alle Strings korrekt umschlossen sind.
  • Deklaration von Variablen:

    • Wenn du eine Variable verwendest, die nicht deklariert ist, kann dies zu einem fehler beim kompilieren vba führen. Verwende Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind.
  • Syntaxfehler in Arrays:

    • Achte darauf, dass du Arrays korrekt definierst. Ein Beispiel für einen fehlerhaften Code könnte sein, wenn du versuchst, auf ein Element eines Arrays zuzugreifen, das nicht existiert.

Alternative Methoden

  • Verwendung von Split-Funktion:

    • Anstatt ein Array manuell zu erstellen, kannst du die Split-Funktion verwenden, um eine Liste von Werten in eine Array-Variable zu konvertieren. Dies reduziert die Wahrscheinlichkeit von Syntaxfehlern.
    Dim arr() As String
    arr = Split("j10,n10,c14", ",")
  • Debugging-Tools:

    • Nutze die Debugging-Tools im VBA-Editor wie Debug.Print, um Werte zu überprüfen und Probleme besser zu identifizieren.

Praktische Beispiele

Hier ist ein Beispiel für einen einfachen VBA-Code, der häufige syntaxfehler vba vermeidet:

Option Explicit

Private Sub Worksheet_Activate()
    [e5].Select
    Application.OnKey "{TAB}", "TabTab"
End Sub

Public Sub TabTab()
    Dim arr() As String
    Dim intIndex As Integer
    intIndex = intIndex + 1
    arr = Split("j10,n10,c14,d14,h14", ",")
    Range(arr(intIndex)).Select
    If intIndex >= UBound(arr) Then intIndex = 0
End Sub

Tipps für Profis

  • Verwende Option Explicit:

    • Dies zwingt dich, alle Variablen zu deklarieren, wodurch viele Fehler vermieden werden.
  • Halte deinen Code sauber:

    • Verwende Kommentare, um zu erklären, was jeder Abschnitt des Codes tut. Dies kann helfen, Fehler zu identifizieren und zukünftige Änderungen zu erleichtern.
  • Regelmäßige Backups:

    • Speichere regelmäßig Kopien deiner Excel-Datei, insbesondere bevor du größere Änderungen am VBA-Code vornimmst.

FAQ: Häufige Fragen

1. Was bedeutet "Fehler beim Kompilieren - Syntaxfehler"? Ein Syntaxfehler tritt auf, wenn der Code nicht den Regeln der Programmiersprache folgt, z.B. durch fehlende Anführungszeichen oder falsche Variablendeklarationen.

2. Wie kann ich häufige Syntaxfehler vermeiden? Nutze Option Explicit, um sicherzustellen, dass alle Variablen deklariert sind, und überprüfe regelmäßig deinen Code auf typografische Fehler.

3. Warum funktioniert mein Makro nicht in einer anderen Excel-Version? Ältere Versionen von Excel können unterschiedliche VBA-Implementierungen haben, was zu excel vba fehler beim kompilieren führen kann. Stelle sicher, dass dein Code mit der verwendeten Version kompatibel ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige