Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Intersect - mehrere Zellbereiche

Forumthread: Intersect - mehrere Zellbereiche

Intersect - mehrere Zellbereiche
10.10.2002 15:58:53
Frank
Hallo zusammen,

möchte über intersect die Option nutzen, zellen vor Fremdeingriffen zu schützen. Nun habe ich allerdings den Zellbereich C8:D14 und G8:H14 zu schützen.
Den ersteren Bereich war kein Problem mit Hilfe dieses Forums, nur wie kann ich weitere Zellbereiche in diesen Code mit einpflegen?

so sieht mein code aus:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)

If Intersect(Target, Range("c8:d14")) Is Nothing Then
Exit Sub
Else
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End If

End Sub


Vielleicht habt Ihr eine Antwort darauf...

Danke!!!

Gruß Frank

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Intersect - mehrere Zellbereiche
10.10.2002 16:04:07
ANdreas
Hallo Frank,

erweitere den Bereich doch einfach:
Range("C8:D14,G8:H14")

Viel Spaß,
Andreas

Vielen Dank Andreas!
10.10.2002 17:15:48
Frank
...
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Intersect in Excel VBA: Mehrere Zellbereiche Verwalten


Schritt-für-Schritt-Anleitung

Um mehrere Zellbereiche in VBA mit der Intersect-Funktion zu verwalten, kannst du folgende Schritte befolgen:

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel, indem du ALT + F11 drückst.

  2. Wähle das Arbeitsblatt aus, in dem du den Code hinzufügen möchtest.

  3. Füge den folgenden Code in das Codefenster ein:

    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
       If Intersect(Target, Range("C8:D14,G8:H14")) Is Nothing Then
           Exit Sub
       Else
           Application.EnableEvents = False
           Application.Undo
           Application.EnableEvents = True
       End If
    End Sub
  4. Speichere deine Änderungen und schließe den VBA-Editor.

In diesem Beispiel schützt der Code die Zellbereiche C8:D14 und G8:H14 vor unerwünschten Änderungen. Wenn eine Änderung in diesen Zellen vorgenommen wird, wird die letzte Aktion zurückgesetzt.


Häufige Fehler und Lösungen

  • Fehler: If not intersect(target, range) is nothing then funktioniert nicht.

    • Lösung: Stelle sicher, dass du die richtigen Zellbereiche in der Intersect-Funktion angibst. Achte darauf, dass die Zellreferenzen korrekt sind.
  • Fehler: Der Code wird nicht ausgeführt, wenn eine Zelle verändert wird.

    • Lösung: Überprüfe, ob die Ereignisse aktiviert sind: Application.EnableEvents = True. Wenn sie auf False gesetzt sind, wird der Code nicht ausgeführt.

Alternative Methoden

Eine Alternative zur Verwendung von Intersect ist die Verwendung von Application.Intersect. Diese Methode funktioniert ähnlich, aber ist etwas flexibler, wenn es um komplexe Zellbereichsoperationen geht.

If Not Application.Intersect(Target, Me.Range("C8:D14,G8:H14")) Is Nothing Then
    ' Deine Logik hier
End If

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du Intersect in VBA nutzen kannst:

  1. Zellbereiche schützen:

    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
       If Not Intersect(Target, Range("A1:B2,C3:D4")) Is Nothing Then
           Application.Undo
           MsgBox "Änderungen in diesem Bereich sind nicht erlaubt."
       End If
    End Sub
  2. Datenvalidierung:

    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
       If Not Intersect(Target, Range("E5:E10")) Is Nothing Then
           If Target.Value < 0 Then
               MsgBox "Werte müssen positiv sein!"
               Application.Undo
           End If
       End If
    End Sub

Tipps für Profis

  • Nutze die If not intersect(target, range)-Klausel, um sicherzustellen, dass dein Code nur bei bestimmten Änderungen ausgeführt wird.
  • Experimentiere mit der Kombination von Intersect und anderen Funktionen wie CountIf, um spezifischere Bedingungen zu erstellen.
  • Halte deinen Code modular, indem du Funktionen für wiederkehrende Logiken erstellst.

FAQ: Häufige Fragen

1. Was ist die Hauptfunktion von Intersect in VBA?
Intersect wird verwendet, um zu überprüfen, ob zwei oder mehr Zellbereiche sich überschneiden. Dies ist nützlich, um gezielte Aktionen basierend auf Benutzeränderungen in bestimmten Zellen durchzuführen.

2. Wie kann ich mehrere Zellbereiche in Intersect angeben?
Du kannst mehrere Zellbereiche mit einem Komma trennen, z.B. Range("C8:D14,G8:H14"). Diese Syntax ermöglicht es dir, mehrere Bereiche in einer einzigen Intersect-Abfrage zu kombinieren.

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