Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
900to904
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
900to904
900to904
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Markierung umkehren?

Markierung umkehren?
25.08.2007 00:23:30
Jochen
Hi,
der Bereich B10:G40 ist markiert(selektiert).
Wie kann ich nun die Selektion umkehren, so, dass der Bereich B10:G40 nicht mehr
selektiert ist, aber dafür alle anderen Zellen, die vorher nicht markiert waren?
mfg Jochen

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Markierung umkehren?
25.08.2007 04:47:00
fcs
Hallo Jochen,
das folgende Makro kehrt innerhalb des benutzten Datenbereichs die Selektion um.
Gruß
Franz

Sub SelectionInvertieren()
Dim Bereich As Range, wks As Worksheet, BereichNeu As Range
Dim lastRow As Long, lastColumn As Integer
Set wks = ActiveSheet
Set Bereich = Selection
With wks
lastRow = .Cells.SpecialCells(xlCellTypeLastCell).Row
lastColumn = .Cells.SpecialCells(xlCellTypeLastCell).Column
If Bereich.Column > 1 Then
Set BereichNeu = .Range(.Cells(1, 1), .Cells(lastRow, Bereich.Column - 1))
End If
If Bereich.Column + Bereich.Columns.Count - 1  1 Then
If BereichNeu Is Nothing Then
Set BereichNeu = .Range(.Cells(1, Bereich.Column), _
.Cells(Bereich.Row - 1, Bereich.Column + Bereich.Columns.Count - 1))
Else
Set BereichNeu = Application.Union(BereichNeu, .Range(.Cells(1, Bereich.Column), _
.Cells(Bereich.Row - 1, Bereich.Column + Bereich.Columns.Count - 1)))
End If
End If
If Bereich.Row + Bereich.Rows.Count - 1 


Anzeige
AW: Markierung umkehren?
25.08.2007 10:54:00
Daniel
HI
das funktioniert aber nicht, wenn mehrere nicht zusammenhängene Zellen selektiert wurden.
Gruß, Daniel

AW: Markierung umkehren?
25.08.2007 14:56:00
fcs
Hallo Daniel,
das ist richtig. In der Frage war aber auch nicht nach einer Mehrfachselektion gefragt, sondern nur nach einem zusammenhängenden Zellenbereich.
Ist aber gut zu wissen, dass hier auch die allgemeinere Lösung zu finden ist.
Gruß
Franz

AW: Markierung umkehren?
25.08.2007 16:22:00
Jörg
Hi,
danke für die Antwort. Das Ergebnis ist, in meinem Beispiel B10:G40, nach Ausführung deines Codes
sind die Zellen A1, B1:G9 selektiert. Das ist ja keine Umkehr, wie ich es beschrieben hatte.
mfg Jochen

Anzeige
AW: Markierung umkehren?
25.08.2007 20:00:00
fcs
Hallo Jochen,
unvollständige/unklare Fragen lassen halt immer etwas Spielraum für nicht ganz passende Antworten.
Mit Anpassung der folgenden beiden Zeilen erfolgt die Markierung in der gewüschten Form

lastRow = .Rows.Count
lastColumn = .Columns.Count


Allerdings frage ich mich jetzt noch mehr als vorher, was der Sinn einer solchen Selektions-Umkehr sein soll.
Gruß
Franz

AW: Markierung umkehren?
25.08.2007 20:13:00
Jochen
Hi,
meine Frage war doch eindeutig:
"Wie kann ich nun die Selektion umkehren, so, dass der Bereich B10:G40 nicht mehr
selektiert ist, aber dafür alle anderen Zellen, die vorher nicht markiert waren?"
Der Sinn sollte eigentlich auch klar sein. Wozu ist überhaupt sine Selektion gut?
Nur was selektiert ist, kann interaktiv bearbeitet werden.
mfg Jochen

Anzeige
AW: Markierung umkehren?
25.08.2007 10:50:30
Daniel
Hi
hier noch ne andere Variante zur Selektionsumkehr, ist ein bischen kürzer

Option Explicit
Dim rngGesamtbereich As Range
Sub Gesamtbereich_definieren()
Set rngGesamtbereich = Selection
End Sub
Sub Selection_invertieren()
Dim rngSelectionAlt As Range
Dim rngSelectionNeu as Range
Dim Zelle As Range
'set Gesamtbereich = Range(...) 'Diese Zeile Verwenden, wenn der Gesamtbereich immer gleich  _
ist.
'                                Das Makro Gesamtbereich definieren kann dann entfallen,  _
der folgende IF-Block auch.
If rngGesamtbereich Is Nothing Then
MsgBox "Es ist kein Gesamtbereich definiert, bitte selektieren Sie den Gesamtbereich  _
und führen sie das Makro ""Gesamtbereich_definieren"" aus."
Exit Sub
End If
Set rngSelectionAlt = Selection
For Each Zelle In rngGesamtbereich
If Intersect(Zelle, rngSelectionAlt) Is Nothing Then
Set rngSelectionNeu = Zelle
Exit For
End If
Next
For Each Zelle In rngGesamtbereich
If Intersect(Zelle, rngSelectionAlt) Is Nothing Then Set rngSelectionNeu = Union( _
rngSelectionNeu, Zelle)
Next
If Not rngSelectionNeu Is Nothing Then rngSelectionNeu.Select
End Sub


es sind 2 Makros, das erste legt den Gesamtbereich fest, auf den sich die Umkehr beziehen soll.
Dazu den Gesamtbereich markieren und das Makro starten.
Erst danach kann mit der Selektions-Umkehr gearbeitet werden.
Ist der Gesamtbereich immer gleich, kann die Definition natürlich direkt ins Hauptmakro übernommen werden.
gruß, Daniel



Anzeige
AW: Markierung umkehren?
25.08.2007 16:26:00
Jochen
Hi,
danke für deine Antwort. Um die Umkehr zu erreichen, muss ich also zuerst alle Zellen
markieren, das erste Makro ausführen, erneut B10:G40 markieren und das zweite
Makro ausführen. Der Code läuft scheinbar auch, hab ihn aber nach mehreren Minuten
abgebrochen. Das liegt wohl an For Each Zelle In rngGesamtbereich, da er ja da wohl
alle Zellen abklappern muss. Das ist dann so nicht praktikabel.
mfg Jochen

AW: Markierung umkehren?
25.08.2007 17:07:37
Daniel
Hi
du musst es den Gesamtbereich einmal zu beginn definieren, danach bleibt er solange gespeichert, wie die Datei geöffnet ist.
falls er immer gleich ist, kann man das ja ins Hauptmakro einprogrammieren, dann muss man es nicht mehr definieren.
Ja in der tat, das Einzelndurchlaufen der Schleife ist nicht besonders schnell.
für vielviele Zellen benötigst du denn diese Funktion?
Gruß, Daniel

Anzeige
AW: Markierung umkehren?
25.08.2007 18:42:00
Jochen
Hi,
das ist doch eindeutig, wenn ich wie im Beispiel B10:G40 markiere und die Markierung soll umgekehrt
werden, sollen immer alle Zellen außer B10:G40 markiert sein.
Hat sich inzwischen erledigt.
mfg Jochen

AW: Markierung umkehren?
25.08.2007 16:31:00
Jochen
Hi,
hab was in der Recherche gefunden.
mfg Jochen

AW: Markierung umkehren?
25.08.2007 17:02:00
Daniel
Hi
was denn, wie wurde es da gelöst?
Gruß, Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige