Herbers Excel-Forum - das Archiv

Nicht markierten Teil einer Tabelle löschen (VBA)



Excel-Version: 8.0 (Office 97)
nach unten

Betrifft: Nicht markierten Teil einer Tabelle löschen (VBA)
von: Martin Beck


Geschrieben am: 23.05.2002 - 12:17:28

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

nach oben   nach unten

Re: Nicht markierten Teil einer Tabelle löschen (VBA)
von: Udo RiHü


Geschrieben am: 23.05.2002 - 18:58:42

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


nach oben   nach unten

Guter Vorschlag, aber ...
von: Martin Beck


Geschrieben am: 24.05.2002 - 09:20:58

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


 nach oben

Excel-Beispiele zum Thema "Nicht markierten Teil einer Tabelle löschen (VBA)"
Abfrage der markierten Spalten Zeilen oberhalb der markierten Zellen einfügen
Markierten Bereich mit jeweiligem Mwst-Satz multiplizieren Markierten Bereich drucken
Suche über mehrere Tabellen Benennen von Tabellenblättern mit Monatsnamen
Druckseitenlinien im Tabellenblatt Tabellenblattnamen in ein Listenfeld einlesen
Suchbegriff über mehrere Tabellenblätter suchen. Tabellenblätter benennen