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

Forumthread: Zeilenumbruch im VBA Code

Zeilenumbruch im VBA Code
17.07.2008 19:11:00
Dieter.K
Hallo Forum,
nach langer Zeit muß ich mich mal wieder mit einem Projekt beschäftigen und schon hängt's ....
Ich muß folgende Zeile aufteilen da der Code sonst zu lang wird und ich laufen seitlich scrollen muß.
'If Not Application.Intersect(Target, Range("C10,C23,C36,C39,C43:C46,C62:C65,C137:C140,C150:C151")) Is Nothing Then'
Es sind jedoch viel mehr Zellbereiche die ich ansprechen muß. Ein Zeilenumbruch mit "Space" und "Unterstrich" bringt mir jedoch immer folgenden Fehler:
Fehler beim Kompilieren
"Erwartet Listentrennzeichen oder)"
Hat jemand einen Tip für mich?
Vielen Dank im Voraus.
Gruß
Dieter.K

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilenumbruch im VBA Code
17.07.2008 19:18:00
Tino
Hallo,
hier mal ein Beispiel.

If Not Application.Intersect _
(Target, Range( _
"C10,C23,C36,C39," & _
"C43:C46,C62:C65," & _
"C137:C140,C150:C151" _
)) Is Nothing Then


Gruß Tino

www.VBA-Excel.de


Anzeige
AW: Zeilenumbruch im VBA Code
17.07.2008 19:23:22
Uduuh
Hallo,
so geht es:

If Not Application.Intersect(Target, Range("C10,C23,C36"), _
Range("C39,C43:C46,C62:C65"), _
Range("C137:C140,C150:C151")) Is Nothing Then
'Code
End If


Gruß aus’m Pott
Udo

Anzeige
AW: Zeilenumbruch im VBA Code
17.07.2008 20:10:15
Dieter.K
Hallo Tino,
hallo Udo,
vielen Dank für Eure Hilfe. So funktioniert es. Leider wird die "Anzahl der Zeichen" zu lang und nach Doppelklick in eine der angesprochenen Zellen stürzt EXCEL ab.
Habe etwas rumprobiert und habe es über "If-Then-Else" gelöst. (Somit wird die max. mögliche Anzahl von Zeichen in einer Zeile nicht überschritten)
Danke nochmals!
Gruß
Dieter.K

Anzeige
noch 1 Vorschlag
17.07.2008 19:28:04
Luschi
Hallo Dieter,
so sollte es auch funktionieren:

Dim rg As Range, strRange As String, strArray() As String, n As Long
strRange = "C10,C23,C36,C39,C43:C46,C62:C65,C137:C140,C150:C151,K1:K5"
strArray = Split(strRange, ",", -1, vbTextCompare)
For n = 0 To UBound(strArray())
If n = 0 Then
Set rg = ActiveSheet.Range(strArray(n))
Else
Set rg = Union(rg, ActiveSheet.Range(strArray(n)))
End If
Next n
''MsgBox rg.Address
If Not Application.Intersect(Target, rg) Is Nothing Then

Gruß von Luschi
aus klein-Paris

Anzeige
AW: noch 1 Vorschlag
17.07.2008 20:12:00
Dieter.K
Hallo Luschi,
auch Dir Danke für Deinen Lösungsvorschlag.
Werde ich nachher mal ausprobieren.
Gruß
Dieter.K

AW: Zeilenumbruch im VBA Code
17.07.2008 22:43:06
Daniel
Hi
wenns ein grosser Zellbereich ist und trotzdem Übersichtlich sein soll, dann könnte auch folgendes Funktionieren:

dim rngBereich = as range
set rngBereich = Range(""C10,C23,C36,C39")
set rngBereich = Union(rngBereich, Range("C43:C46,C62:C65,C137:C140"))
set rngBereich = Union(rngBereich, Range("C150:C151"))
set rngBereich = Union(rngBereich, Range("....
'---usw bis alle Zellbereiche hinzugefügt sind
'If Not Application.Intersect(Target, rngBereich) Is Nothing Then'


grosser Vorteil dieser Methode ist, daß du relativ leicht logisch zusammengehörende Zellebereiche in einer Zeile gruppieren kannst und die anderen in anderen Zeilen abrtrennen kannst.
zudem kannst du so leicht jede Zeile mit einem Kommentar versehen, was die Korrektur oder Überarbeitung zu einen späteren Zeitpunkt westenlich vereinfacht.
Gruß, Daniel

Anzeige
AW: Zeilenumbruch im VBA Code
18.07.2008 03:16:00
Dieter.K
Hallo Daniel,
Danke auch für Deinen Tip. Werde das am Wochenende mal testen.
Gruß
Dieter.K
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeilenumbruch im VBA Code


Schritt-für-Schritt-Anleitung

Um einen Zeilenumbruch im VBA Code zu erstellen, kannst du den Unterstrich (_) verwenden, um eine Zeile zu teilen. Hier ist ein einfaches Beispiel:

If Not Application.Intersect(Target, _
Range("C10,C23,C36," & _
"C39,C43:C46,C62:C65," & _
"C137:C140,C150:C151")) Is Nothing Then
    ' Code hier
End If

In diesem Beispiel wird der VBA Code mit dem Listentrennzeichen sowie dem Unterstrich so strukturiert, dass er übersichtlich bleibt und die maximale Zeichenanzahl pro Zeile nicht überschreitet.


Häufige Fehler und Lösungen

Ein häufiger Fehler ist die Meldung "Erwartet Listentrennzeichen oder)". Dieser Fehler tritt auf, wenn der Zeilenumbruch nicht korrekt implementiert wurde. Achte darauf, dass:

  • Der Unterstrich am Ende der Zeile steht, ohne darauf folgenden Text.
  • Alle Teile der Zeile in Anführungszeichen gesetzt sind, wenn sie Strings sind.

Wenn du diese Punkte beachtest, sollte der Zeilenumbruch in deinem VBA Code funktionieren.


Alternative Methoden

Es gibt verschiedene Möglichkeiten, um einen VBA Zeilenumbruch zu implementieren:

  1. Verwendung von Union: Du kannst Zellbereiche zusammenfassen, um die Lesbarkeit zu erhöhen.

    Dim rg As Range
    Set rg = Union(Range("C10,C23,C36"), Range("C39,C43:C46,C62:C65"), Range("C137:C140,C150:C151"))
    If Not Application.Intersect(Target, rg) Is Nothing Then
       ' Code hier
    End If
  2. Split-Funktion: Du kannst eine Liste von Zellbereichen in ein Array aufteilen und dann mit einer Schleife arbeiten.

    Dim strRange As String, strArray() As String
    strRange = "C10,C23,C36,C39,C43:C46,C62:C65,C137:C140,C150:C151"
    strArray = Split(strRange, ",")
    ' Schleife über strArray hier

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du den Zeilenumbruch im VBA Code effektiv benutzen kannst:

  • Beispiel 1:
If Not Application.Intersect(Target, Range("C10,C23,C36"), _
Range("C39,C43:C46,C62:C65"), _
Range("C137:C140,C150:C151")) Is Nothing Then
    ' Code hier
End If
  • Beispiel 2: Verwenden von Union, um die Übersichtlichkeit zu verbessern.
Dim rngBereich As Range
Set rngBereich = Union(Range("C10,C23,C36"), Range("C39,C43:C46"), Range("C62:C65"))
If Not Application.Intersect(Target, rngBereich) Is Nothing Then
    ' Code hier
End If

Diese Methoden helfen dir, den Excel VBA Zeilenumbruch klar und organisiert zu halten.


Tipps für Profis

  • Verwende Kommentare, um den Code verständlicher zu machen.
  • Halte deine Zellreferenzen in einer Variablen, um den Code flexibler zu gestalten.
  • Teste den Code regelmäßig, um sicherzustellen, dass alle Teile korrekt zusammenarbeiten.

Ein gut strukturierter VBA Code ist nicht nur einfacher zu lesen, sondern auch leichter zu warten.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Zellbereiche in einer Zeile zusammenfassen?
Du kannst die Union-Methode verwenden, um mehrere Zellbereiche zu einem einzigen Bereich zusammenzufassen.

2. Was kann ich tun, wenn Excel beim Doppelklick auf eine Zelle abstürzt?
Stelle sicher, dass du die maximale Anzahl an Zeichen pro Zeile nicht überschreitest. Verwende ggf. die If-Then-Else-Struktur, um den Code zu optimieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige