Excel / Calc - Bei Klick auf Zelle, Spalten und Zeilen markieren?
Hallo zusammen,
ich hätte folgendes Problem. Und zwar hätte ich gerne (am liebsten im Open Office Calc, ansonsten Excel) beim Klick auf eine einzelne Zelle, dass sich alle Zellen in der befindlichen Spalte und alle Zellen in der befindlichen Zeile markieren. Bis hin zu der angeklickten Zelle (im Notfall auch drüber hinaus).
Die nahezu noch bessere Variante wäre, dass ich nur durch fahren über die Zelle mit dem Mauszeiger den selben Effekt erreiche, jedoch wäre das wohl zuviel des Guten. ;)
Ich hoffe mir kann jemand weiterhelfen.
Besten Dank für eure Mühe!!!
2 Antworten
Hey,
für das Markieren einer ganzen Spalte einfach den jeweiligen Spalten-Buchstaben anklicken.
Für das Markieren einer ganzen Zeile einfach die jeweilige Zeilen-Zahl anklicken.
Für das Markieren bis, bzw. ab einer bestimmten Zelle:
Zeile - in die jeweilige Zelle klicken und dann Shift + Pos1 drücken. Markiert die Zeile von der Zelle bis zur ersten Zelle der Zeile.
Spalte - in die jeweilige Zelle klicken und dann Strg + Shift + Pfeiltaste hoch drücken. Falls mehrere leere und beschriftete Zellen zwischen deiner Zelle und dem Spaltenanfang sind, diese Tastenkombi gedrückt halten, bis du ganz oben bist.
Wenn du einfachere Möglichkeiten suchst als diese, wirst du entweder über Automatisierung oder einem anderen Aufbau deiner Tabelle nachdenken müssen :)
Gruß
Hallo,
Danke für deine schnelle Antwort..
Leider bringt mir das eher nichts. Für mich müssten automatisch durch den Klick z.b. auf die Zelle C3 - alle Zellen markiert werden welche auf der x und y Achse bis hin zu C3 befinden (A3, B3 und C1, C2). Sobald ich dann auf zb. E4 klicke müssten folgende Zellen markiert werden (A4, B4, C4, D4 und E1, E2, E3)
Aktuell markiert mir Calc ja nur den buchsten C (oben) und die Zahl 3 (links)...
Jemand noch eine andere Lösung?
Besten Dank!
In OpenOffice und Excel geht das nicht allzu unähnlich:
Erstmal müssen wir wissen, wie der Code überhaupt aussehen kann.
Lass ein neues Makro aufzeichnen.
Wähle die Zellen oberhalb und die Zellen links von der aktuellen aus (mit Strg + Maus drüber ziehen); markiere die aktuelle Zelle (Strg + Linksklick; zweimal, weil diese Zelle beim ersten Klick deaktiviert wird)
Schau dir das erstellte Makro an und passe es so an, dass die ausgewählte Zelle eine beliebige sein kann.
Außerdem muss die Prozedur sicherstellen, dass sie verlassen wird, wenn sie sich selbst aufruft - sonst kriegen wir einen Stapelüberlauf, weil die Prozedur ja auf ein Ereignis reagiert, das sie selbst auslöst.
Weise dieses Makro dem "Auswahl geändert"-Makro zu.
Excel: Name der Prozedur "Sub Worksheet_SelectionChange"
Calc: Rechtsklick auf den Namen der Tabelle (im "Tab"/"Reiter" ganz unten) und Klick auf "Tabellenereignisse"
-----
Wie genau der Code angepasst werden muss, kann ich nur für Excel sagen, da ich mich noch nicht in das Objekt-Modell von OpenOffice/LibreOffice hineingearbeitet habe - es scheint mir ein wenig unübersichtlicher zu sein als das von Microsoft Office.
Code für Excel:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static procedureIsRunning As Boolean 'wird mit False initialisiert
If procedureIsRunning Then Exit Sub
procedureIsRunning = True
If Target.Count = 1 Then 'nur durchführen, wenn genau eine Zelle markiert ist - kann geändert werden
Dim targetAddress As String, addrSplit() As String, rowPartAddress As String, colPartAddress As String
Dim addressToBeSelected As String
targetAddress = Target.Address(True, True)
addrSplit = Split(targetAddress, "$")
rowPartAddress = "$" + addrSplit(1) + "$" + "1" + ":" + targetAddress
colPartAddress = "$" + "A" + "$" + addrSplit(2) + ":" + targetAddress
addressToBeSelected = rowPartAddress + "," + colPartAddress
Dim rg As Range
Set rg = Range(addressToBeSelected)
rg.Select
Target.Activate
End If
procedureIsRunning = False
End Sub