Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1364to1368
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
Inhaltsverzeichnis

usedrange

usedrange
20.06.2014 15:44:50
Stephan
Hallo Zusammen,
ich würde gern ab Zeile 5 den gesamten Bereich markieren. Bisher verwende ich folgenden Code:
Sheets("Tabelle1").Rows("5:65553").Select
Nun würde ich gern ab Zeile 5 den gesamten gefüllten Bereich ansprechen. Von A1 beginnend klappt es:
Sheets("Tabelle1").UsedRange.Rows.Select
Aber ab Zeile 5 gestaltet es sich schwierig. Mein Versuch leider mit Fehlermeldung:
Sheets("Tabelle1").Rows("8:" & UsedRange).Rows.Select
Freue mich über jede Hilfe. Vielen Dank!
Grüße
Stephan

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Range statt 1.Rows, 2.Rows entfällt! Gruß owT
20.06.2014 15:49:59
Luc:-?
:-?

AW: Range statt 1.Rows, 2.Rows entfällt! Gruß owT
20.06.2014 15:58:54
Stephan
Hallo Luc,
danke für deine Antwort. Das würde dann für mich so aussehen:
Sheets("Tabelle1").Range("5:" & UsedRange).Select
Klappt aber nicht.
Grüße
Stephan

AW: Range statt 1.Rows, 2.Rows entfällt! Gruß owT
20.06.2014 16:11:55
Daniel
Hi
Korrekterweise schaust auch so aus
Sheets("Tabelle1").Range("5:" & Sheets("Tabelle1").cells.specialcells(xlcelltypelastcell).row). _
Select

Oder
Sheets("Tabelle1").Range("5:" & Sheets("Tabelle1").Usedrange.rows.count).Select
Die zweite Variante setzt voraus, dass die Zeile 1 benutzt wird, dh Daten oder Formate enthält.
Ansonsten gehört sie nicht zur Usedrange und das Rows.Count liefert ein für diese Anwendung falsches Ergebnis.
Gruß Daniel

Anzeige
AW: Range statt 1.Rows, 2.Rows entfällt! Gruß owT
20.06.2014 16:27:36
Stephan
Hallo Daniel,
vielen Dank! Nun habe ich folgenden Code:
Sheets("Tabelle1").Range("A5:O" & Sheets("Tabelle1").UsedRange.Rows.Count).Select
Passt für mich! Danke auch für den Hinweis mit der ersten Zeile.
Grüße
Stephan

Kann auch nicht! UsedRange ist selbst Bereich! owT
20.06.2014 16:59:09
Luc:-?
:-?

AW: usedrange
20.06.2014 16:11:39
EtoPHG
Hallo Stephan,
SELECT ist zu 99% überflüssig. Also erkläre WAS du in dem Bereich mit VBA anstellen willst.
Der Bereich ohne die ersten 4 Zeilen wäre:
    With Worksheets("Tabelle1")
Intersect(.UsedRange, .UsedRange.Offset(4)).Select
End With
Gruess Hansueli

Anzeige
AW: usedrange
20.06.2014 16:36:09
Stephan
Hallo Hansueli,
vielen Dank für deinen Vorschlag. Daniel hat mir eine gute Lösung gegeben.
Grüße und schönes Wochenende
Stephan

UsedRange.Rows.Count ... Die Irrtümer
20.06.2014 18:17:58
Matthias
Hallo Stephan
Bist Du Dir darüber im Klaren was
Sheets("Tabelle1").UsedRange.Rows.Count

Dir zurückgibt?
Das ist die letzte Zeile im benutzten Bereich, ab Beginn des benutzten Bereichs!

Beispiel!
Wenn Du nun in A5 beginnst Daten einzupflegen und den Code so benutzt kann/wird es zu falschen Auswertungen kommen!
Ich werde Dir das hier mal an einem Bsp. demonstrieren
https://www.herber.de/bbs/user/91196.xlsm
UsedRange hat im Bsp. 5 Zeilen also gibt UsedRange.Rows.Count 5 zurück
und markiert auch nur Zeile5 im gewünschten SpaltenBereich
Verstanden?
Gruß Matthias

Anzeige
AW: UsedRange.Rows.Count ... Die Irrtümer
21.06.2014 13:06:36
Stephan
Hallo Matthias,
vielen Dank für deinen Hinweis. Deinen Thread habe ich verstanden und meine bisherige Lösung überprüft.
Nun muss ich folgenden Code verwenden: Sheets("Tabelle1").Range("A5:G" & Sheets("Tabelle1").Cells.SpecialCells(xlCellTypeLastCell).Row).Select
Bisher habe ich immer das gesamte Tabellenblatt angesprochen mit rows.(5:65536) Dabei spreche ich aber das gesamte Tabellenblatt an, unabhängig ob Daten enthalten sind. Bei xls 2010 müsste ich das noch erweitern.
Eine andere Möglichkeit wäre End(xlUp) und End(xlToRight. Dies setzt jedoch voraus, dass die Spalte A komplett gefüllt ist. Ist bei mir leider nicht der Fall.
Somit sollte… xlCellTypeLastCell…, oder?
Vielen Dank nochmal
Grüße
Stephan

Anzeige
AW: UsedRange.Rows.Count ... Die Irrtümer
21.06.2014 14:27:44
Daniel
Hi
die Usedrange ist ein rechteckiger Zellbereich, welcher alle Zellen umfasst, die einen Wert, eine Formel oder eine eigenständige Formatierung enthalten.
Cells.SpecialCells(xlcelltypelastcell) ist die rechte unter Zelle der Usedrange.
Cells.SpecialCells(xlcelltypelastcell).Row liefert als Ergbnis die Zeilennummer der letzen benutzen Zelle.
Activesheet.Usedrange.Rows.Count liefert dir als Ergbnis die Anzahl der Zeilen des benutzen Bereichs.
wenn die Zeile 1 zum benutzen Bereich gehört, sind beide Werte gleich.
gehört die Zeile 1 nicht zum benutzen Bereich, dh der benutze Bereich fängt erst in Zeile 2 oder später an, dann ist die Anzahl der Zeilen im benutzen Bereich natürlich kleiner als die Zeilennummer der letzen benutzten Zeile.
wenn du die Zeilennummer der letzten benutzen Zeile brauchst, dann hast du folgende Möglichkeiten:
1. cells.specialcells(xlcelltypelastcell).row
2. Activesheet.Usedrange.Row + Activesheet.Usedrange.Rows.Count - 1
wenn sichergestellt ist, dass die erste Zeile zum benutzen Bereich gehört, dann reicht auch
3. Activersheet.Usedrange.Rows.count.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige