Hallo Michi,
was der Sinn hinter deiner Aktion ist, hab ich zwar auch nicht verstanden - wie Mackie bereits schrieb wäre ein Colorieren des Zellhintergrunds, bzw. ein normaler Selection-Befehl wohl sinnvoller (z.B. Rows(ActiveCell.Row).Select im Selection_Change-Ereignis) - aber wenn du bei deinem Rechteck bleiben willst, kannst du dafür das folgende Makro verwenden. Dieses weist du einfach als auszuführendes Makro im Kontextmenü (Rechtsklick) deines Rechtecks zu. Dann wird das immer ausgeführt wenn du auf das Rechteck klickst.
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Type POINTAPI
x As Long
y As Long
End Type
Dim mymouse As POINTAPI
Public Sub Klick()
On Error Resume Next
Dim hasDropdown As Boolean
Dim WshShell As Object
Set WshShell = CreateObject("WScript.Shell")
GetCursorPos mymouse
ActiveSheet.Shapes("Rechteck 2").Visible = False
ActiveWindow.RangeFromPoint(mymouse.x, mymouse.y).Select
hasDropdown = ActiveCell.Validation.Type = xlValidateList
If hasDropdown Then WshShell.SendKeys "%{Down}", True
ActiveSheet.Shapes("Rechteck 2").Visible = True
End Sub
Natürlich ist das mit Kanonen auf Spatzen geschossen, aber vielleicht interessiert es ja hier irgendwen.
Gruß Mr. K.
|