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

Selektion umkehren

Selektion umkehren
14.10.2004 23:41:48
Frank
Hallo Leute,
ist es möglich eine Selektion auf Knopfdruck und/oder Tastenkombi umzukehren
und vor allem wie geht das, wenn überhaupt.
Grüße Frank

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Selektion umkehren
K.Rola
Hallo,
ist komplizierter als so denkt.
Option Base 1
Sub machs()
Dim rngSelection As Range
Set rngSelection = Range(inv_Range(Selection))
rngSelection.Select
End Sub

Private Function inv_Range(rngS As Range)
On Error Resume Next
Dim rng1 As Range, rng2 As Range, rng3 As Range, rng4 As Range
Dim c As Long, rc As Long, cc As Integer
rc = ActiveSheet.Rows.Count
cc = ActiveSheet.Columns.Count
c = 0
If rngS.Row > 1 Then
Set rng1 = Rows("1:" & rngS.Row - 1)
c = 1
End If
If rngS.Row + rngS.Rows.Count - 1 < rc Then
Set rng2 = Rows(rngS.Row + rngS.Rows.Count & ":" & rc)
c = c + 2
End If
If rngS.Column > 1 Then
Set rng3 = Range(Columns(1), Columns(rngS.Column - 1))
c = c + 4
End If
If rngS.Column + rngS.Columns.Count - 1 < cc Then
Set rng4 = Range(Columns(rngS.Column + _
rngS.Columns.Count), Columns(cc))
c = c + 8
End If
inv_Range = ""
Do While c > 0
Select Case c
Case 1, 3, 5, 7, 9, 11, 13, 15:
If inv_Range = "" Then
inv_Range = rng1.Address
Else
inv_Range = Union(Range(inv_Range), rng1).Address
End If
c = c - 1
Case 2, 6, 10, 14:
If inv_Range = "" Then
inv_Range = rng2.Address
Else
inv_Range = Union(Range(inv_Range), rng2).Address
End If
c = c - 2
Case 4, 12:
If inv_Range = "" Then
inv_Range = rng3.Address
Else
inv_Range = Union(Range(inv_Range), rng3).Address
End If
c = c - 4
Case 8:
If inv_Range = "" Then
inv_Range = rng4.Address
Else
inv_Range = Union(Range(inv_Range), rng4).Address
End If
c = c - 8
End Select
Loop
End Function

Gruß K.Rola
Anzeige
Code ist etwas verwurschtelt! oT
K.Rola
oT
AW: Code ist etwas verwurschtelt! oT
Frank
Hallo K.Rola,
danke, mal sehen, ob ich das auch verstehe, funktioniert auf jeden Fall, warum auch immer.
Grüße Frank

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige