Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1820to1824
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

Bereich letzte Zeile / Spalte

Bereich letzte Zeile / Spalte
24.03.2021 09:59:31
Eisi
Hallo zusammen,
mit nachfolgendem Code möchte ich folgendes erreichen, damit ich meine Arbeitsbereiche dynamisch erfassen kann:
1. Es soll z. B. ein Bereich dynamisch festgelegt werden.
Einmal Zeile A1 bis letzte befüllte Zeile und Spalte A bis letzte befüllte Spalte
2. Ich möchte damit erreichen, egal was sich in der Tabelle ändert, das ich immer die letzte Zeile / Spalte erwische.
3. Mit UsedRange geht da auch was, aber ich will den Bereich genau erfassen, damit ich die Kontrolle behalte.
4. Dann soll der eigentliche Code starten, hier im Fall die Spalte A aufsteigend sortieren. In dem Fall habe ich eine Überschrift.
5. Ich möchte mit aber die Option offen halten, um erst ab der Zeile 5 den Bereich zu benennen. Oder erst ab Spalte 3.
Ich habe versucht einen Code zu basteln, der funktioniert aber nicht. Hat jemand einen Tipp, was hier noch fehlt, bzw. was noch angepasst werden muss?
Vielen Dank.
VG Eisi :-)
Sub BereichErfassenSortieren()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim Zeile  As Long
Dim ZeileMax As Long
Dim Spalte  As Integer
Dim SpalteMax As Integer
With tbl_DatenLDS
ZeileMax = .Range("A65536").End(xlUp).Row
SpalteMax = .Range("A1").End(xlToRight).Column
For Zeile = 1 To ZeileMax
For Spalte = 1 To SpalteMax
.Range("Zeile&Spalte").Sort Key1:=Range("A2"), Header:=xlYes
End With
endmacro:
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End 

Sub



7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bereich letzte Zeile / Spalte
24.03.2021 11:09:36
MRUTOR
Hallo Eisi,
versuch mal die 2 Zeilen so:

ZeileMax = .Cells(Rows.Count, 1).End(xlUp).Row
SpalteMax = .Cells(1, Columns.Count).End(xlToLeft).Column

und natuerlich musst du die For Schleifen auch schliessen, also komplett:

With tbl_DatenLDS
ZeileMax = .Cells(Rows.Count, 1).End(xlUp).Row
SpalteMax = .Cells(1, Columns.Count).End(xlToLeft).Column
For Zeile = 1 To ZeileMax
For Spalte = 1 To SpalteMax
.Range("Zeile&Spalte").Sort Key1:=Range("A2"), Header:=xlYes
Next Spalte
Next Zeile
End With

Gruss Tor

Anzeige
AW: Bereich letzte Zeile / Spalte
24.03.2021 11:34:56
Eisi
Hallo Tor,
danke für Dein Feedback.
Der Code bleibt hier hängen:
.Range("Zeile&Spalte").Sort Key1:=Range("A2"), Header:=xlYes
Aber ich glaube, dass ich grundsätzlich einen Denkfehler habe?
Mit meiner Angabe suche ich ja die letzte Zelle und letzte Spalte. Die wird so auch gefunden.
Aber der Bereich der sortiert werden soll ist, glaube ich, überhaupt nicht beschrieben.
Denn der Bereich müsste ja lauten:
Fange z. B. bei A2 an und lege den Bereich an dem Punkt fest, an dem sich die letzte Zeile und letzte Spalte treffen. Und sortiere diesen Bereich in der Spalte A aufsteigend.
Ich möchte deshalb den Bereich genau festlegen, falls auf dem Blatt andere Daten stehen sollten.
Wo liegt der Denkfehler? Von den nicht ausreichenden Code-Kenntnissen mal abgesehen, aber das lerne ich schon noch. :-)
Danke für die Hilfe.
VG Eisi :-)

Anzeige
AW: Bereich letzte Zeile / Spalte
24.03.2021 11:56:12
MRUTOR
eine Frage dazu:
Willst du jede Spalte einzeln sortieren oder den gesamten Bereich nach Spalte A? Und wie soll sortiert werden, aufsteigend oder absteigend?
Ich denke, dass du hier gar keine Schleifen brauchst.

AW: Bereich letzte Zeile / Spalte
24.03.2021 12:15:19
Eisi
gesamten Bereich nach Spalte A sortieren und aufsteigend (1,2,3 usw.)

AW: Bereich letzte Zeile / Spalte
24.03.2021 12:36:15
MRUTOR
Hallo Eisi,
also hier meine Loesung. Da du ja im ersten Beitrag geschrieben hast, dass du eventuell die Startzeile und/oder Startspalte veraendern willst, habe ich dir hierfuer noch 2 Variablen eingebaut. Die musst du dann nur dementsprechend aendern. Kommentar ist im Code. Es wird jetzt immer nach der ersten Spalte des Bereichs sortiert. Egal ob der Bereich in Spalte A oder Spalte E oder sonstwo anfaengt.

Sub BereichErfassenSortieren()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim ZeileStart  As Long, SpalteStart As Long
Dim ZeileMax As Long, SpalteMax As Long
With tbl_DatenLDS
ZeileStart = 1      'hier deine Startzeile eintragen, 1 fuer 1 so kannst du den Bereich  _
veraendern
SpalteStart = 1     'hier deine Startspalte eintragen, 1 fuer A so kannst du den Bereich  _
veraendern
ZeileMax = .Cells(Rows.Count, 1).End(xlUp).Row
SpalteMax = .Cells(1, Columns.Count).End(xlToLeft).Column
.Range(.Cells(ZeileStart, SpalteStart), .Cells(ZeileMax, SpalteMax)).Sort Key1:=.Cells( _
ZeileStart + 1, SpalteStart), Order1:=xlAscending, Header:=xlYes
End With
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Gruss Tor

Anzeige
AW: Bereich letzte Zeile / Spalte
24.03.2021 12:57:50
Eisi
Hallo Tor,
riesen herzlichen Dank. Der Code ist total super, denn ich kann mich komplett frei bewegen und bekomme immer das richtige Ergebnis, egal was ich in den Zeilen und Spalten dazu schreibe.
Klasse.
GLG Eisi :-)

gerne...
24.03.2021 13:00:19
MRUTOR
Viel Spass
Gruss Tor

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige