Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1068to1072
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Selection merken

Selection merken
17.04.2009 10:12:58
Michael
Hallo,
ich will mir die selektierten Zellen eines Tabellenblatts merken und später diese Selektion wieder herstellen:
Set auswahl = Application.Selection
...
auswahl.Select
Mit vorstehendem Code klappt das, wenn ich "positiv" auswähle, d.h. wenn ich z.B. mit Mausklick und Mausklick+Shift einen Bereich auswähle, oder mit Mausklick+Strg einzelne Zellen dazunehme.
Wenn ich allerdings zunächst einen Bereich auswähle und davon einzelne Zellen durch Mausklick+Strg ausnehme, wird zuletzt immer der ganze Bereich - ohne Berücksichtigung der abgewählten Zellen - ausgewählt.
Wie kann ich das berücksichtigen?
Dank & Gruß,
Michael

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ein Wunder
17.04.2009 10:20:34
Daniel
Hi

Wenn ich allerdings zunächst einen Bereich auswähle und davon einzelne Zellen durch Mausklick+Strg ausnehme


das geht nicht.
man kann in Excel von einem einmal selektierten Bereich keine bereits selektierten Zellen einzeln deselektieren. (zumindest nicht in meiner Excelversion: XP).
falls du mal zuviele Zellen selektiert hast, hilft nur eine Neuselektion (hat mich auch schon oft geärgert).
das einzige, was du mit STRG+Mausklick in einem selektierten Bereich erreichst, ist, daß du die Aktive Zelle verschiebst.
Diese sieht zwar aus, als wäre sie nicht selektiert, aber das täuscht.
Gruß, Daniel

Anzeige
(fast) nichts ist unmöglich :-)
17.04.2009 11:56:42
Reinhard
Hallo Daniel,
mal ein Ansatz wo man einzelne Zellen durch Strg+Maus selektieren kann und durchs erneute Strg+Maus werden sie deselektiert.
Zellbereiche in Target.address müßte man noch aufsplitten um wieder Zellen darin desektieren zu können.
Deshalb Frage noch offen.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Pos, Neu
If Target.Cells.Count = 1 Then Exit Sub
[d1] = Target.Address
[d2] = Selection.Address
[d3] = ActiveCell.Address
Pos = InStrRev(Target.Address, ",")
If InStr(Left(Target.Address, Pos - 1), Mid(Target.Address, Pos + 1)) > 0 Then
Application.EnableEvents = False
Neu = Replace("," & Target.Address, Mid(Target.Address, Pos), "")
If Neu  "" Then Range(Mid(Neu, 2)).Select
Application.EnableEvents = True
End If
End Sub


Gruß
Reinhard

Anzeige
AW: Funktioniert aber noch nicht
17.04.2009 12:27:12
Daniel
Hi
gibt ne Fehlermeldung, Ungültiger Prozeduraufruf. (-1 als Parameter in der Left-String-Funktion)
also nochmal nachbessern.
und gleich auf ne vollständige Variablendeklaration achten.
alles als Variant du dimensionieren ist kein guter Stil
außerdem, klar mit VBA kann man fast alles nachprogrammieren.
aber Excel sieht die genannte Funktionalität nicht vor.
Gruß, Daniel
AW: Funktioniert aber noch nicht
17.04.2009 12:33:17
Reinhard
Hallo Daniel,
dann halt so:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Pos As Long, Neu As String, Zelle As Range
If Target.Cells.Count = 1 Then Exit Sub
If InStrRev(Target.Address, ",") = 0 Then Exit Sub
Set Target = Range(Left(Target.Address, InStrRev(Target.Address, ",") - 1))
If Intersect(Target, ActiveCell) Is Nothing Then Exit Sub
Pos = InStrRev(Target.Address, ",")
For Each Zelle In Target
If Zelle.Address  ActiveCell.Address Then Neu = Neu & "," & Zelle.Address
Next Zelle
Application.EnableEvents = False
If Neu  "" Then Range(Mid(Neu, 2)).Select
Application.EnableEvents = True
End Sub


Gruß
Reinhard

Anzeige
AW: ein Wunder
21.04.2009 13:47:56
Michael
Hallo Daniel,
... woher soll ich wissen, was ich meine, bevor ich sehe, was ich schreibe ... ;)
Du hast natürlich Recht. Ich kann die "negativ"-Auswahl jetzt auch nicht mehr nachvollziehen, was erklärt, wieso dann immer der ganze Bereich ausgewählt wird.
Danke, auch an Reinhard,
Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige