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

Forumthread: Prüfen, ob sich Auswahl in einem Bereich befindet

Prüfen, ob sich Auswahl in einem Bereich befindet
08.07.2005 18:33:10
Frank
Hallo Leute,
ich kriege hier ein Problem nicht gelöst, in der Recherche habe ich auch nichts gefunden. In einem Worksheet benenne ich einen Zellbereich mit einem Namen, z.B. "Test" für den Bereich "A1:D20". Dann markiere ich mit der Maus irgendeinen Bereich im Worksheet. Das kann eine einzelne Zelle oder eben auch ein Bereich von mehreren Zellen sein. Ich möchte dann mittels VBA feststellen, ob der so markierte Bereich innerhalb des Bereiches "Test" liegt oder nicht. Ich habe da schon mal an die "MergeArea"-Eigenschaft gedacht, aber ich komme nicht auf die Lösung. Kann mir hierbei jemand helfen?
Vielen Dank schon mal
Frank
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Prüfen, ob sich Auswahl in einem Bereich befindet
08.07.2005 18:41:12
ransi
hallo frank
schau dir mal intersect() an.
ransi
AW: Prüfen, ob sich Auswahl in einem Bereich befindet
08.07.2005 19:00:15
Frank
Hallo ransi,
vielen Dank für die schnelle Antwort, das hat mir schon mal weitergeholfen. Leider führt das zu einer weiteren Frage: Wenn ich jetzt einen Bereich markiere, der teilweise in "Test" liegt, teilweise aber auch ausserhalb von "Test" liegt (also eine Schnittmenge ist), dann bekomme ich als Antwort ein "True". Gibt es nun noch eine Möglichkeit festzustellen, ob sich der gesamte markierte Bereich innerhalb von "Test" befindet? Also dass ein "False" geliefert wird, wenn sich auch nur eine einzige Zelle des markierten Bereichs ausserhalb von "Test" befindet?
MfG
Frank
Anzeige
AW: Prüfen, ob sich Auswahl in einem Bereich befindet
08.07.2005 18:42:38
th.heinrich
hallo Frank,
schau Dir mal in der vba hilfe die intersect methode an.
gruss thomas
AW: Danke schön, siehe AW an ransi
08.07.2005 19:07:12
Frank
AW: Danke schön, siehe AW an ransi
08.07.2005 19:15:21
ransi
hallo frank
eine möglichkeit wäre jede zelle von selection innerhalb einer schleife mit intersect zu prüfen. Ist zwar sehr umständlich funzt aber.
Option Explicit
Public

Sub test()
Dim bereich As Range
Dim zelle As Range
Dim innerhalb As Boolean
innerhalb = True
Set bereich = Range("A1:D10")
For Each zelle In Selection
If Intersect(bereich, zelle) Is Nothing Then
innerhalb = False
'MsgBox zelle.Address & " ist nicht im Bereich"
Exit For
End If
Next
MsgBox innerhalb
End Sub

ransi
Anzeige
AW: Danke schön, siehe AW an ransi
08.07.2005 19:30:00
Frank
Hallo ransi,
Na schön, ist tatsächlich etwas umständlich, funktioniert aber. Immerhin kriege ich damit mein Problem gelöst, und das ist doch wohl das Wichtigste. Noch mal vielen Dank für Deine Antworten, hast mir sehr geholfen!
MfG
Frank
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Auswahl in einem Excel-Bereich prüfen


Schritt-für-Schritt-Anleitung

Um zu überprüfen, ob sich eine Auswahl in einem bestimmten Bereich in Excel befindet, kannst Du die Intersect-Methode in VBA verwenden. Folgende Schritte helfen Dir dabei:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
  2. Erstelle ein neues Modul:

    • Klicke mit der rechten Maustaste auf dein Projekt im Projekt-Explorer.
    • Wähle „Einfügen“ und dann „Modul“.
  3. Füge den folgenden VBA-Code ein:

    Option Explicit
    
    Sub test()
       Dim bereich As Range
       Dim zelle As Range
       Dim innerhalb As Boolean
       innerhalb = True
       Set bereich = Range("Test") ' Der benannte Bereich
    
       For Each zelle In Selection
           If Intersect(bereich, zelle) Is Nothing Then
               innerhalb = False
               Exit For
           End If
       Next
    
       MsgBox innerhalb
    End Sub
  4. Benutze den Code:

    • Markiere einen Bereich in Deinem Excel-Blatt.
    • Führe das Makro test aus, um zu überprüfen, ob der markierte Bereich vollständig innerhalb des benannten Bereichs „Test“ liegt.

Häufige Fehler und Lösungen

  • Fehler: „Typen unverträglich“.

    • Lösung: Stelle sicher, dass der benannte Bereich in Excel korrekt definiert ist.
  • Fehler: Das Ergebnis zeigt „True“ für teilweise überlappende Bereiche.

    • Lösung: Der Code prüft jede Zelle in der Auswahl. Wenn eine Zelle außerhalb des benannten Bereichs liegt, wird innerhalb auf False gesetzt.

Alternative Methoden

Wenn Du keine VBA-Programmierung verwenden möchtest, kannst Du auch folgende Methoden in Betracht ziehen:

  • Bedingte Formatierung: Nutze die bedingte Formatierungsfunktion, um optisch darzustellen, ob Zellen innerhalb eines bestimmten Bereichs liegen.

  • Formeln: Verwende eine Kombination aus WENN und UND-Funktionen, um die Gültigkeit von Zellen innerhalb eines Bereichs zu überprüfen.


Praktische Beispiele

Ein häufiges Szenario könnte sein, dass Du einen Bereich von Zellen hast, die nur dann bearbeitet werden dürfen, wenn sie in einem bestimmten Bereich liegen. Hier ist ein Beispiel für die Anwendung:

  • Beispiel: Angenommen, Du hast den Bereich „Test“ (A1:D20) und möchtest sicherstellen, dass alle bearbeiteten Zellen aus einer Auswahl in diesem Bereich liegen, bevor Du eine Berechnung durchführst.

Tipps für Profis

  • Optimierung des Codes: Du kannst den Code optimieren, indem Du die Application.ScreenUpdating-Eigenschaft nutzt, um die Bildschirmaktualisierung während der Ausführung des Makros zu deaktivieren. Das erhöht die Leistung.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung im Code, um unvorhergesehene Fehler abzufangen und eine bessere Benutzererfahrung zu bieten.


FAQ: Häufige Fragen

1. Wie kann ich den benannten Bereich „Test“ erstellen? Um einen benannten Bereich zu erstellen, wähle den gewünschten Zellbereich aus, gehe auf „Formeln“ > „Namen definieren“ und gib „Test“ ein.

2. Welche Excel-Version benötige ich für VBA? VBA ist in den meisten Versionen von Excel verfügbar, einschließlich Excel 2010, 2013, 2016, 2019 und Microsoft 365.

3. Kann ich die Methode auch für mehrere Bereiche verwenden? Ja, Du kannst die Methode anpassen, um mehrere benannte Bereiche zu überprüfen, indem Du die Union-Funktion in VBA verwendest.

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