Clever-Excel-Forum

Normale Version: aktive Zelle addressieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Ich möchte die Koordinaten folgender Matrix erhalten indem ich mit dem Cursor eine Zelle auswähle. Wie kann ich das realisieren?
Hallöchen,

könnte es sein, dass Du die Koordinaten der angeklickten Zelle möchtest und nicht die Koordinaten der Matrix?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox Target.Address
End Sub
Nein, Ich möchte tatsächlich die Koordinaten der Matrix aber wahrscheinlich kann man auch einfach das was ich will von den Koordinaten der Zelle ableiten oder?

Ich habe gesehen, dass du Mitbetreiber dieses Forums bist.
Vielen Dank dafür.
Hallöchen,

2x ja Smile

ansonsten kannst Du über Target.Row und Target.Column selbige ermitteln und ziehst die "verschobenen" Spalten und Zeilen ab.

Die Ausgabe kann man auch noch mehr oder weniger genau auf den Bereich beschränken Smile
z.B.
If Not Intersect(Target, Range("C4:L13")) Is Nothing Then

End If

Ungenau ist das deswegen, weil man z.B. bei Auswahl der Zeile 4 auch einen Treffer landet. Das könnte man z.B. durch eine Prüfung auf Anzahl der gewählten "Target"-Zellen vermeiden, wenn man da 1 als erwartete Anzahl definiert.
Deine Lösung hat leider nicht funktioniert bei mir. Vielleicht lag es auch an mir.
Ich habe jetzt folgendes Makro entworfen.
Allerdings muss ich jedes Mal erneut F5 drücken, damit die neuen Koordinaten beim Auswählen einer neuen Zelle dort eingetragen werden.
Wie mache ich das, dass dieses Makro mir nach jedem neuen auswählen einer Zelle die aktuellen Koordinaten anzeigt.

Desweiteren wollte ich das ganze eigentlich mit:

If
Elseif
Elseif
...
Else machen aber da hat er mir immer das erste Elseif eingefärbt und gesagt: "Else ohne if"


Sub ReturnActiveCell()
Dim x As Integer
Dim y1 As Long
Dim y2 As Long
x = ActiveCell.Column
y1 = ActiveCell.Row
If y1 = 4 Then y2 = 10
If y1 = 5 Then y2 = 9
If y1 = 6 Then y2 = 8
If y1 = 7 Then y2 = 7
If y1 = 8 Then y2 = 6
If y1 = 9 Then y2 = 5
If y1 = 10 Then y2 = 4
If y1 = 11 Then y2 = 3
If y1 = 12 Then y2 = 2
If y1 = 13 Then y2 = 1
Range("O4").Value = x - 2
Range("P4").Value = y2
End Sub
Hallo,

folgendes kommt in das schon vorhandene VBA-Modul des entsprechenden Tabellenblattes:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim x As Long
Dim y As Long
x = ActiveCell.Column
y = ActiveCell.Row
If y > 3 And y < 14 Then
Range("P4").Value = 14 - y
End If
Range("O4").Value = x - 2
End Sub
Gruß Uwe
Hallöchen,

oder eben mit den Target's so:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("C4:L14")) Is Nothing And Target.Cells.Count = 1 Then
Range("O4") = 14 - Target.Column
Range("P4") = Target.Row - 3
End If
End Sub

Zum Thema ElseIf:

http://www.clever-excel-forum.de/Thread-...#pid131989