VBA: Prüfen ob Zeile markiert wurde

Hallo liebe Experten,

ich möchte innerhalb eines Makros prüfen, ob die aktuelle Markierung eine ganze Zeile umfaßt (und nicht nur einzelne Zellen).

If Ganze.beliebige.Zeile.markiert(???) = True Then

Kann mir jemand sagen, wie der Code in VBA lauten muß?

Vieln Dank schon mal

Christian

ich möchte innerhalb eines Makros prüfen, ob die aktuelle Markierung eine ganze Zeile umfaßt (und nicht nur einzelne Zellen).

Einfach mal ein bißchen in der Hilfe wühlen, dann kommt man schnell selbst drauf - ich wußte vorher auch nicht, wie es geht:

Function ZeileMarkiert() As Boolean
 With Selection
 ZeileMarkiert = (.Row & ":" & .Row) = .Address(RowAbsolute:=False)
 End With 'Selection
End Function 'ZeileMarkiert
 
Sub Test()
 MsgBox ZeileMarkiert
End Sub

Kristian

Danke
Vielen Dank Kristian!

Auch wenn ich gestehen muß, daß es mich noch einige Mühe gekostet hat, das in eine IF THEN ELSE - Funktion umzubasteln. Ich habe leider kaum Erfahrung in VBA (außer Makros aufzeichnen) und komme mit der Hilfe auch nicht klar.

Wo kann man das lernen ???

Auch wenn ich gestehen muß, daß es mich noch einige Mühe
gekostet hat, das in eine IF THEN ELSE - Funktion umzubasteln.
Ich habe leider kaum Erfahrung in VBA (außer Makros
aufzeichnen) und komme mit der Hilfe auch nicht klar.

Wo kann man das lernen ???

Also bei mir war’s „Learning by Doing“. Zuerst war mir die Hilfe auch etwas suspekt, aber mit der Zeit geht’s ganz gut. Viel geholfen hat mir das Aufzeichnen von Makros. Die Resultate habe ich mir dann immer angeguckt, und dann ging’s los mit Strg-F1: Alle Schlüsselwörter, die ich nicht verstand oder die mich neugierig gemacht hatten, wurden mit dem Cursor markiert (irgendwo ins Wort klicken), um dann mit Strg-F1 die Hilfe aufzurufen, und da wiederum gibt es oft Beispiele und die Rubrik „Siehe auch …“. Na und dann fehlt nur noch der Spieltrieb :wink:

Kannst es ja mal ausprobieren. Auch der Hilfe-Index und die Suche sind manchmal nützlich, wenn man nach einem Stichwort sucht und nicht weiß, ob es passende Funktionen gibt.

In Deinem Beispiel war der Einstieg die Selection. Darunter gibt es das Range-Objekt, das wiederum eine Row-Eigenschaft besitzt, wie ich in der Liste las. Und dann wußte ich, daß man die Felder in Excel ja adressiert, und siehe da, es gab in der Liste auch eine Adreß-Eigenschaft. Fertig war die Lösung. So einfach ist es zumindest dann, wenn man ein bissl Routine gewonnen hat.

In diesem Sinne viele Grüße,
Kristian

PS: Achso, und die If-Then-Geschichte sollte dann so aussehen:

If ZeileMarkiert Then ' Oder: If ZeileMarkiert = Wahr Then
 MsgBox "Zeile ist komplett markiert."
Else
 MsgBox "Es ist nur ein Zellbereich markiert."
End If 'ZeileMarkiert