ich muss überprüfen, ob eine angewählte Zelle in einem bestimmten Bereich liegt.
Kann mir bitte jemand einen kleinen Tip geben wie das geht ?
Danke im Voraus
Horst
ich muss überprüfen, ob eine angewählte Zelle in einem bestimmten Bereich liegt.
Kann mir bitte jemand einen kleinen Tip geben wie das geht ?
Danke im Voraus
Horst
so zum Beispiel:
cu
jinx
Gruß Horst
indem Du statt einzelner Zellen den Bereich ansprichst, für das Beispiel abgewandelt dann entsprechend
Set SMenge = Application.Intersect(Range("A10:A20"), Range(ActiveCell.Address))
cu
jinx
Öffne Excel und stelle sicher, dass das VBA-Entwickler-Tool aktiviert ist. Gehe dazu auf Datei
> Optionen
> Menüband anpassen
und aktiviere das Feld "Entwicklertools".
Öffne den VBA-Editor: Drücke ALT
+ F11
, um den Visual Basic for Applications (VBA) Editor zu öffnen.
Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle Einfügen
> Modul
.
Gib den folgenden Code ein:
Sub CheckActiveCellInRange()
Dim SMenge As Range
Set SMenge = Application.Intersect(Range("A10:A20"), Range(ActiveCell.Address))
If Not SMenge Is Nothing Then
MsgBox "Die aktive Zelle liegt im Bereich A10:A20."
Else
MsgBox "Die aktive Zelle liegt nicht im Bereich A10:A20."
End If
End Sub
Schließe den VBA-Editor und kehre zu Excel zurück.
Führe das Makro aus: Gehe zu Entwicklertools
> Makros
, wähle CheckActiveCellInRange
aus und klicke auf Ausführen
.
Fehler: "Laufzeitfehler 1004: Methode 'Intersect' des Objekts 'Application' ist fehlgeschlagen."
Fehler: "Der Typ der Variable ist nicht korrekt."
Eine alternative Methode zur Überprüfung, ob die aktive Zelle in einem bestimmten Bereich liegt, ist die Verwendung von Excel-Formeln. Du kannst die WENN
-Funktion zusammen mit UND
nutzen:
=WENN(UND(AktiveZelle>=A10; AktiveZelle<=A20); "In Bereich"; "Nicht in Bereich")
Diese Formel kann direkt in eine Zelle eingegeben werden, um den Status der aktiven Zelle zu überprüfen.
Beispiel 1: Du möchtest überprüfen, ob die aktive Zelle in einem Bereich von B5 bis B15 liegt. Ändere einfach die Range im VBA-Code:
Set SMenge = Application.Intersect(Range("B5:B15"), Range(ActiveCell.Address))
Beispiel 2: Wenn Du mehrere Bereiche überprüfen möchtest, kannst Du die Union
-Funktion nutzen:
Set SMenge = Application.Intersect(Union(Range("A10:A20"), Range("B10:B20")), Range(ActiveCell.Address))
Nutze die With
-Anweisung, um den Code lesbarer zu gestalten:
With Application
Set SMenge = .Intersect(Range("A10:A20"), Range(ActiveCell.Address))
End With
Verwende die MsgBox
-Funktion, um benutzerdefinierte Nachrichten anzuzeigen. Du kannst auch die Schaltflächen und Icons anpassen, um die Benutzererfahrung zu verbessern.
1. Kann ich die aktive Zelle auch in einem anderen Arbeitsblatt überprüfen?
Ja, Du kannst den Code anpassen, um auf ein bestimmtes Arbeitsblatt zuzugreifen, indem Du Worksheets("DeinBlatt").Range("A10:A20")
verwendest.
2. Ist dieser Code in allen Excel-Versionen verfügbar? Ja, der VBA-Code funktioniert in Excel-Versionen ab 2007 und höher. Stelle sicher, dass Du Makros in den Excel-Optionen aktiviert hast.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen