Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Selektierte Zeilen zählen (Strg Taste)

Betrifft: Selektierte Zeilen zählen (Strg Taste) von: Berni
Geschrieben am: 14.09.2020 20:40:07


Datei: https://www.herber.de/bbs/user/140229.xlsm

Guten Abend liebe Excel Profis,

in meiner Beispielmappe ist für meine Frage der blau hinterlegte Bereich auf Sheet("Detail") relevant. Ich möchte gern ausschließen, dass der User mehr als eine der gelben Zeilen auswählen bzw. markieren kann, da die im Folgenden ausgelösten Makros nur eine Zeile zur Zeit verarbeiten können.

Die Zeilen dazwischen sind später für den User übrigens nicht sichtbar bzw. werden ausgeblendet. Diese stellen die eigentlichen Werte für die weitere Datenverarbeitung dar. Die gelben Zeilen sollen mit der bedingten Formatierung nur dem Nutzer das Ergebnis darstellen.

Ich habe daher also eine Vorprüfungen einbauen wollen:

Dim Anfang, Ende As String
Dim Bereich_Alle As String

Anfang = Cells(Sheets("Detail").Range("Zuteil_A").Row, Sheets("Detail").Range("Zuteil_A").Column).Address
Ende = Cells(Sheets("Detail").Range("Zuteil_E").Row, Sheets("Detail").Range("Zuteil_E").Column _ + Sheets("Detail").Range("Zuteil_E").Columns.Count - 1).Address

Bereich_Alle = Anfang & ":" & Ende

If Not Intersect(Target, Range(Bereich_Alle)) Is Nothing Then
If Selection.Rows.Count * 1 Then (Das * ist ein "größer als")
MsgBox "Es kann nur eine Organisationseinheit zur Zeit verarbeitet werden. Bitte die Auswahl anpassen."
End If
End If

Das selection.rows.count funktioniert auch super, aber nur solange mehrere Zeilen mit gedrückter Maustaste markiert werden. Wenn allerdings mit gedrückter Strg Taste und Mausklicks gelbe Zellen in mehreren Zeilen ausgewählt werden, funktioniert das wieder nicht.

Wo liegt bitte mein Denkfehler? Hat hier jemand eine Tip für mich oder eine einfachere Lösung, um zu verhindern, dass Zellen in unterschiedlichen gelben Zeilen markiert werden?

Die Markierung mehrerer Zeilen wäre noch ok, ich benötige praktisch eine Art Prüfung dazu, um den User per msgbox darauf hinzuweisen, dass nur 1 Zeile zur Zeit verarbeitet werden kann.

Ich bedanke mich schon im Voraus.

Schönen Abend allerseits und Grüße aus dem Süden,

Berni.

Betrifft: AW: Selektierte Zeilen zählen (Strg Taste)
von: GerdL
Geschrieben am: 14.09.2020 20:59:54

Moin Berni!
MsgBox Selection.Cells.Count
Die ActiveCell ist immer singular.

Gruß Gerd

Betrifft: AW: Selektierte Zeilen zählen (Strg Taste)
von: Berni
Geschrieben am: 14.09.2020 21:29:18

Moin Gerd

Danke für die schnelle Antwort! Hilft mir leider nicht abschließend weiter.

"Selection.Cells.Count" zählt auch die mit gedrückter Strg Taste angewählten Zellen mit und würde mir bei "größer 1" signalisieren, dass Zellen in mehreren Zeilen angewählt wurden.

Da dem User aber eine Auswahl mehrerer Zellen innerhalb EINER gelben Zeile möglich sein soll, führt das zum selben Ergebnis und bringt mich nicht weiter.

Wie kann ich dies so umsetzen, dass eine oder mehrere Zellen innerhalb EINER gelben Zeile angewählt werden können, bei mehreren Zellen in mehreren Zeilen dies aber zB per msgbox dem User "verboten" werden kann?

Gruß, Berni.

Betrifft: AW: Selektierte Zeilen zählen (Strg Taste)
von: Daniel
Geschrieben am: 14.09.2020 21:43:47

hi
if intersect(Selection.EntireRow, columns(1)).Cells.Count > 1 then
    MsgBox "bitte nur eine Zeile auswählen."
end If
Gruß Daniel

Betrifft: AW: Selektierte Zeilen zählen (Strg Taste)
von: Berni
Geschrieben am: 14.09.2020 21:50:50

Hallo Daniel,

das funktioniert! Wunderbar und vielen Dank!

Dir und Gerd einen schönen Abend.

Beiträge aus dem Excel-Forum zum Thema "Selektierte Zeilen zählen (Strg Taste)"