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

ohne Select

ohne Select
20.12.2007 17:47:00
Antje
Hallo alle zusammen,
ich möchte alle Daten markieren, die sich ab der Zeile 3 befinden. Dazu habe ich mit dem Makrorecordern folgendes aufgezeichnet.
Rows("3:3").Select
Range(Selection, Selection.End(xlDown)).Select
Kann man das auch anders schreiben.
Vielen Dank im Voraus
MFG Antje

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ohne Select
20.12.2007 18:00:13
Hajo_Zi
Hallo Antje,
ja. In VBA kann zu 99,9% auf select usw. verzichtet werden. Du hast uns nur nicht mitgeteilt was Du machen möchtest.

AW: ohne Select
20.12.2007 18:07:00
Antje
Hallo Hajo,
ich habe in der Zeile 2 den Autofilter und möchte bestimmte Filterkriterien löschen. Deshalb möchte ich vorher alles markieren und mit
Selection.SpecialCells(xlCellTypeVisible).Delete shift:=xlUp
die Zeilen löschen.
MFG Antje

AW: ohne Select
20.12.2007 18:12:00
Hajo_Zi
Hallo Antje,
ungetestet.

Option Explicit
Sub Antje()
'Rows("3:3").Select
'' führt zu einem falschen Ergebniss fals IV3 belegt
'Range(Selection, Selection.End(xlDown)).Select
'Selection.SpecialCells(xlCellTypeVisible).Delete shift:=xlUp
Dim LoLetzte As Integer
'    unabhängig von Excelversion
'    für Zeile 3
LoLetzte = IIf(IsEmpty(Cells(3, Columns.Count)), Cells(3, Columns.Count).End(xlToLeft). _
Column, Columns.Count)
Range(Cells(3, 1), Cells(3, LoLetzte)).SpecialCells(xlCellTypeVisible).Delete shift:=xlUp
End Sub


Gruß Hajo

Anzeige
AW: ohne Select
21.12.2007 01:21:00
Daniel
Hi
wenn man davon ausgeht, das du ne ordentliche Tablle hast, dh.
- eine Zeile überschrift
- keine Leerzeilen, keine Leerspalten
- keine weiteren Daten unterhalb der Tabelle,
dann kannst du die Tabelle, bzw die gefilterte Auswahl am einfachsten so selektieren:
Annahme: 1. Zelle der Tabelle sei A1: und Überschrift ist in Zeile 1

Range("A1").currentregion.offset(1,0).specialcells(xlcelltypevisible).delete shift:=xlup


Currentregion erweitert die Auswahl auf die ganze Tabelle
Offset(1,0) verschiebt die Auswahl um 1 nach unten, so daß die Überschrift nicht in der auswahl drin ist.
(dafür ist die Leerzeile unter der Tabelle mit drin, aber das ist kein Problem , wenn keine weitren Daten unterhalb der Tabelle stehen.
Muss die auswahl genau auf die Tabelle eingeschränkt werden, weil drunter doch noch daten Stehen, wird es etwas Komplexer, da der mit currentregion ermittelte Zellbereich um 1 verkleinert werden muss:


Range("A1").currrentregion.offset(1,0).Resize(Range("A1").currentregion.rows.count-1).specialcells(xlcelltypevisible).delete shift:=xlup


in diesem Fall bietet sich die With-Klammer a:


With Range("A1").CurrentRegion
.Offset(1,0).Resize(.Rows.Count-1).specialcells(xlcelltypevisible).delete shift:=xlup
end with


Anzeige
AW: ohne Select
20.12.2007 18:02:00
Andi
Hi,
also wenn Du was markieren willst, dann geht's natürlich nicht ganz ohne Select.
Deinen Code könnte man zB so umschreiben:
Range(Rows("3:3"), Rows("3:3").End(xlDown)).Select
Das funktioniert aber nur, wenn die Daten lückenlos sind, und zuverlässig jeder Datensatz in Spalte A einen Eintrag hat. Wenn Du das ganze etwas felxibler haben willst, also auch Daten unter einer Leerzeile noch erkannt werden oder solche Zeilen, in denen erst ab Spalte B was steht, dann probier mal dies:
If Not Intersect(Rows("3:65536"), ActiveSheet.UsedRange) Is Nothing Then Intersect(Rows("3:65536"), ActiveSheet.UsedRange).Select
Schönen Gruß,
Andi

Anzeige
AW: ohne Select
20.12.2007 18:26:00
Antje
Hallo Andi,
Danke für den Tipp, ich werde dies einbauen.
Vielen Dank.
MFG Antje

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige