Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeilenumbruch im VBA Code

Zeilenumbruch im VBA Code
14.06.2009 11:10:29
Karel
Hallo Forum,
Ich muß folgende Zeile aufteilen da der Code sonst zu lang wird und unübersichtlich wird.
If Target.Value = ("B4,D4,F4,H4,B15,D15,F15,H15,B28,D28,F28,H28...............")
Es sind jedoch viel mehr Zellbereiche die ich ansprechen muß sehe unten. Ein Zeilenumbruch mit "Space" und "Unterstrich" bringt mir jedoch immer folgenden Fehler.
Fehler meldung Erwartet Listentrennzeichen oder
Hat jemand einen Tip für mich?
(Private Sub Worksheet_Change(ByVal Target As Range)
'**************************************************
'* H. Ziplies *
'* 01.01.09 *
'* erstellt von Hajo.Ziplies@web.de *
'* http://Hajo-Excel.de/
*
'**************************************************
Dim StBild As String ' Variable für Bildname
Dim InI As Integer ' Schleifenvariable
Dim RaBereich As Range ' Bereich der Wirksamtkeit
Dim RaZelle As Range ' Zelle die in der Schleife bearbeitet wird
' Bereich der Wirksamkeit

If Target.Value = ("B4,D4,F4,H4,B15,D15,F15,H15,B28,D28,F28,H28")

Set RaBereich = Union(Range("B4,D4,F4,H4,B15,D15,F15,H15,B28,D28,F28,H28,B39,D39,F39,H39,B52,D52,F52,H52"), _
Range("B63,D63,F63,H63,B76,D76,F76,H76,B87,D87,F87,H87,B100,D100,F100,H100,B111,D111,F111,H111"), _
Range("B124,D124,F124,H124,B135,D135,F135,H135,B148,D148,F148,H148,B159,D159,F159,H159"))
Vielen Dank im Voraus.
Karel
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Zeilenumbruch im VBA Code
14.06.2009 11:13:44
Josef
Hallo Karel,
du musst die Strings immer mit " beginnen/beenden.

If Target.Value = ("B4,D4,F4,H4,B15,D15,F15" & _
"H15,B28,D28,F28,H28")


Gruß Sepp

AW: Zeilenumbruch im VBA Code
14.06.2009 12:43:19
Karel
Hallo Sep
das Funktioniert perfekt aber ?
If Target.Cells.Count > 1 Then Exit Sub
If Target.Value = ("B4,D4,F4,H4,B15,D15,F15,H15,B28,D28,F28,H28,B39,D39,F39,H39,B52,D52,F52,H52" & _
"B63,D63,F63,H63,B76,D76,F76,H76,B87,D87,F87,H87,B100,D100,F100,H100,B111,D111,F111,H111" & _
"B124,D124,F124,H124,B135,D135,F135,H135,B148,D148,F148,H148,B159,D159,F159,H159") Then Exit Sub
aber wenn ich das gleiche versuchen für Gleiche Zellbereich im Code unter bekommen ich wieder gleiche Fehlermeldung woan liegt dass.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Range("A1").Activate
Dim Zelle As Range
Dim Bereich As Range
Set Bereich = Range("B4,D4,F4,H4,B15,D15,F15,H15,..........")
For Each Zelle In Bereich
Zelle.Select
Next
End Sub


Grusse
Karel

Anzeige
AW: Zeilenumbruch im VBA Code
14.06.2009 12:55:54
Nepumuk
Hallo Karel,
das Argument der Range-Eigenschaft darf nicht länger als 255 Zeichen sein. Du wirst das also auf mehrere Zeilen aufteilen müssen und mit der Union-Methode dein Objekt zusammensetzen.
Gruß
Nepumuk
AW: Zeilenumbruch im VBA Code
14.06.2009 13:45:13
Karel
Hallo Sep
das Funktioniert perfekt aber ?
If Target.Cells.Count > 1 Then Exit Sub
If Target.Value = ("B4,D4,F4,H4,B15,D15,F15,H15,B28,D28,F28,H28,B39,D39,F39,H39,B52,D52,F52,H52" & _
"B63,D63,F63,H63,B76,D76,F76,H76,B87,D87,F87,H87,B100,D100,F100,H100,B111,D111,F111,H111" & _
"B124,D124,F124,H124,B135,D135,F135,H135,B148,D148,F148,H148,B159,D159,F159,H159") Then Exit Sub
aber wenn ich das gleiche versuchen für Gleiche Zellbereich im Code unter bekommen ich wieder gleiche Fehlermeldung woan liegt dass.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Range("A1").Activate
Dim Zelle As Range
Dim Bereich As Range
Set Bereich = Range("B4,D4,F4,H4,B15,D15,F15,H15,..........")
For Each Zelle In Bereich
Zelle.Select
Next
End Sub


Grusse
Karel

Anzeige
AW: Zeilenumbruch im VBA Code
14.06.2009 14:01:17
Hajo_Zi
Halo Karel,
schaue in den Beispielcode da wurde es mit Union definiert.

AW: Zeilenumbruch im VBA Code
14.06.2009 15:02:57
Karel
Hallo
hat bei Code von Sepp Komma vergessen
Viele Dank ind Grüsse
Karel
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeilenumbruch im VBA Code


Schritt-für-Schritt-Anleitung

  1. Strings korrekt formatieren: Stelle sicher, dass du deine Strings in VBA immer mit Anführungszeichen ("") beginnst und beendest. Wenn du eine lange Zeile hast, kannst du sie mit einem Unterstrich (_) umgebrochen in die nächste Zeile fortsetzen.

    If Target.Value = ("B4,D4,F4,H4,B15,D15,F15" & _
    "H15,B28,D28,F28,H28") Then
  2. Verwende die Union-Methode: Wenn deine Zellreferenzen zu lang sind, nutze die Union-Methode, um mehrere Bereiche zu kombinieren. Das ermöglicht dir, mehr als 255 Zeichen in deinem Code zu verwenden.

    Set RaBereich = Union(Range("B4,D4,F4,H4"), Range("B15,D15,F15,H15"))
  3. Überprüfe die Anzahl der Zellen: Wenn du mehrere Zellen überprüfst, stelle sicher, dass du die Anzahl der Zellen mit If Target.Cells.Count > 1 Then Exit Sub prüfst.


Häufige Fehler und Lösungen

  • Fehlermeldung "Erwartet Listentrennzeichen": Diese Meldung tritt auf, wenn du versuchst, einen String ohne korrekte Trennung zu verwenden. Achte darauf, dass du Anführungszeichen und das Verkettungszeichen (&) korrekt nutzt.

  • Argument der Range-Eigenschaft zu lang: Wenn du die Fehlermeldung erhältst, dass das Argument der Range-Eigenschaft länger als 255 Zeichen ist, musst du deine Zellbereiche in mehrere Zeilen aufteilen und mit Union kombinieren.


Alternative Methoden

  • Verwendung von Arrays: Stattdessen kannst du auch ein Array verwenden, um deine Zellreferenzen zu speichern, und dann mit einer Schleife über das Array iterieren.

    Dim ZellArray As Variant
    ZellArray = Array("B4", "D4", "F4", ...)
  • Für Mac Excel: Wenn du Mac Excel verwendest, können die Methoden und der VBA-Zeilenumbruch ähnlich funktionieren, achte jedoch auf mögliche Unterschiede in der Syntax.


Praktische Beispiele

Hier sind einige Beispiele für die Verwendung von Zeilenumbrüchen im VBA-Code:

  1. Einfacher Zeilenumbruch im Code:

    If Target.Value = ("B4,D4,F4,H4" & _
    "B15,D15,F15,H15") Then
  2. Verwendung von Union mit mehreren Zeilen:

    Set RaBereich = Union(Range("B4,D4,F4,H4"), _
    Range("B15,D15,F15,H15"), _
    Range("B28,D28,F28,H28"))

Tipps für Profis

  • Verwende Kommentare: Kommentiere deinen Code gut, damit andere (oder du selbst in der Zukunft) schnell verstehen, was jeder Abschnitt macht.

  • Namen für Bereiche: Überlege, ob du den Bereichen, die du häufig verwendest, Namen geben möchtest. Das kann die Lesbarkeit deines Codes erhöhen und die Verwendung erleichtern.

  • VBA-Fehlerbehandlung: Implementiere eine Fehlerbehandlung in deinem Code, um sicherzustellen, dass unerwartete Fehler elegant behandelt werden.


FAQ: Häufige Fragen

1. Wie kann ich einen Zeilenumbruch in einem String in VBA erstellen?
Du kannst einen Zeilenumbruch in einem String erstellen, indem du das Verkettungszeichen (&) und den Unterstrich (_) verwendest.

2. Warum bekomme ich eine Fehlermeldung bei der Verwendung von Range in VBA?
Die Fehlermeldung kann auftreten, wenn das Argument für Range zu lang ist. Teile den Bereich in kürzere Segmente auf und verwende die Union-Methode, um sie zu kombinieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige