Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1080to1084
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

VBA: größe eines Bereichs ermitteln

VBA: größe eines Bereichs ermitteln
12.06.2009 10:35:16
André
Moin zusammen,
ich habe mal wieder eine Anfängerfrage bezüglich VBA.
Eine Tabelle beeinhaltet Datensätze. Dabei ist weder die Anzahl der Datensätze festgelegt, noch die Anzahl der Felder (Spalten) pro Datensatz. Ich weiß vorab, daß die Datentabelle immer in Zelle A5 beginnt, daß in der ersten Spalte (A) keine Lücken sind und daß in der Überschriftenzeile (5) ebenfalls keine Leerfelder vorkommen.
Wie kann ich möglichst einfach ermitteln, welchen Bereich (z.B. $A$5:$Q$512) die Datensätze einnehmen?
Danke für eure Hilfe.
Gruß, André

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

Betreff
Datum
Anwender
Anzeige
mit UsedRange.Address
12.06.2009 10:46:01
Matthias
Hallo
MsgBox UsedRange.Address
Gruß Matthias
AW: mit UsedRange.Address
12.06.2009 10:55:14
André
Hallo Matthias,
das hilft mir leider nur zur Hälfte weiter. In meiner Tabelle ergibt UsedRange z.B. $A$1:$Q$512. Ich brauche aber den Bezug $A$5:$Q$512.
Das heißt, ich kenne ja die obere Linke Ecke meines Datenbereichs (nicht gleich der oberen linken Ecke des Tabellenblatts), brauche aber die untere rechte.
Gruß, André
AW: mit UsedRange.Address
12.06.2009 11:11:01
Luschi
Hallo André,
versuch es mal so:
Dim rg As Range, n As Long
'benutzten Bereich ermitteln
Set rg = ActiveSheet.UsedRange
'Anzahl der Zeilen im Bereich
n = rg.Rows.Count
'Bereich um 3 Zeilen nach unten schieben und um 3 Zeilen kürzen
Set rg = rg.Offset(3, 0).Resize(n - 3)
Set rg = Nothing
Gruß von Luschi
aus klein-Paris
Anzeige
AW: mit UsedRange.Address
12.06.2009 12:19:56
André
Hallo Luschi,
danke, so funktioniert das wunderbar.
Gruß, André
brauche aber die untere rechte.
12.06.2009 11:46:14
Matthias
Hallo
Na dann vielleicht so.
Userbild
Nicht gerade profihaft, aber wenn keine weiteren Daten drin sind könnte es klappen
Nee, vergiss es.
machs einfach so:

MsgBox Cells(ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row, ActiveSheet.UsedRange. _
SpecialCells(xlCellTypeLastCell).Column).Address


Gruß Matthias

Zusammenhängenden Bereich ermitteln
12.06.2009 11:29:22
Erich
Hi André
mit UsedRange würde ich an der Stelle nicht arbeiten, insbesondere nicht voraussetzen,
dass UsedRange bei A1 beginnt.
Probier mal

Sub test()
Dim rng As Range, lngZ As Long, lngS As Long
With Cells(5, 1)
If IsEmpty(.Offset(1)) Then lngZ = .Row Else lngZ = .End(xlDown).Row
If IsEmpty(.Offset(, 1)) Then lngS = .Column Else lngS = .End(xlToRight).Column
Set rng = Range(.Cells, Cells(lngZ, lngS))
End With
MsgBox rng.Address
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Zusammenhängenden Bereich ermitteln
12.06.2009 11:57:39
Gerd
Hi @all !
Das sehe ich wie Erich. Bliebe noch abzuklären, ob André die Überschriftenzeile (5) in der auszugebenden Bereichsaddresse mit drinn haben will, falls nein, was zurückgegeben werden soll, wenn A6 dann leer ist.
Grüße Gerd
AW: Zusammenhängenden Bereich ermitteln
12.06.2009 12:03:28
Matthias
Hi
Zitat:
Ich weiß vorab, daß die Datentabelle immer in Zelle A5 beginnt, daß in der ersten Spalte (A) keine Lücken sind
;o)
Gruß Matthias
AW: Auch Zitat
12.06.2009 12:15:08
Gerd
Hi Matthias!
und daß in der Überschriftenzeile (5)
Es hängt doch davon ab, für welchen Zweck der ermittelte Bereich verwendet werden soll,
ob die Überschriftenzeile einbezogen werden muss.
Gruß Gerd
Anzeige
AW: Zusammenhängenden Bereich ermitteln
12.06.2009 12:20:53
André
Moin Erich,
danke. Ich habe allerdings den Vorschlag von Luschi genommen, der auch wunderbar funktioniert.
Gruß, André
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge