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

Nicht markierten Teil einer Tabelle löschen (VBA)

Nicht markierten Teil einer Tabelle löschen (VBA)
23.05.2002 12:17:28
Martin Beck
Hallo,

ich möchte gerne per VBA alle Zellen in einem Tabellenblatt, die nicht markiert sind, löschen. Ich benötige also einen Range, der das Komplement zu Selection darstellt. Bisheriger Ansatz:

Geht das auch einfacher, insb. ohne die beiden Schleifen? Ich dachte an so etwas wie

Not Application.Intersect(Selection, Cells)

Bin für jeden Hinweis dankbar.

Gruß
Martin Beck

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Nicht markierten Teil einer Tabelle löschen (VBA)
23.05.2002 18:58:42
Udo RiHü
Hallo,
wie wär's damit?
Sub loeschen()
Dim C, C1, R, R1

C = Selection.Column
C1 = Selection.Columns.Count
R = Selection.Row
R1 = Selection.Rows.Count

'Wrng = MsgBox("Alle unmarkierten Zellen werden unwiederruflich gelöscht!", 273)
'If Wrng <> vbOK Then Exit Sub

If C > 1 Then
Range(Cells(1, 1), Cells(1, C - 1)).EntireColumn.Delete
End If
If R > 1 Then
Range(Cells(1, 1), Cells(R - 1, 1)).EntireRow.Delete
End If
Range(Cells(1, C1 + 1), Cells(1, 256)).EntireColumn.Delete
Range(Cells(R1 + 1, 1), Cells(65536, 1)).EntireRow.Delete

Range(Cells(1, 1), Cells(R1, C1)).Select
End Sub

Anzeige
Guter Vorschlag, aber ...
24.05.2002 09:20:58
Martin Beck
Hallo Udo,

erstmal Danke für die Antwort. Über die Ecken des selektierten Bereichs zu gehen war auch mein erster Ansatz. Das (und damit auch Dein Makro) funktioniert allerdings nur dann korrekt, wenn es sich bei dem markierten Bereich um eine Matrix (Einfachselektion) handelt. Bei Mehrfachmarkierungen gibt es Probleme, die ich mit meinem Schleifenansatz überwunden habe.

Was mich aber eigentlich interessiert ist die Frage, ob man den nichtselektierten Bereich des UsedRange direkt als Range-Objekt ansprechen kann. Nach meinen bisherigen Überlegungen vermute ich mal, daß dies nicht geht. Ich würde mich aber gerne eines besseren belehren lassen. Vielleicht geht was über Union, Intersect, Areas???

Gruß
Martin Beck

Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige