Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Spalten sortieren ab Zeile 3

Spalten sortieren ab Zeile 3
19.06.2006 12:54:30
Wolfgang
Hallo*
mit nachfolgendem Code wollte ich eigentlich erreichen, dass mir die gefüllten Zeilen über Spalte A, konkret A3 -bis Spalte U-(in A1 und A2 stehen noch Überschriften) sortiert werden. Irgendwie klappt das nicht; Die Sortierung erfolgt immer schon ab Zeile A2; Was mache ich da verkehrt? - Wäre wieder sehr dankbar für eine Hilfestellung
Herzliche Grüße
Wolfgang

Private Sub Sort()
Application.ScreenUpdating = False
With ActiveSheet
Cells.Select
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End With
Range("A1").Select
Application.ScreenUpdating = True
End Sub

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten sortieren ab Zeile 3
19.06.2006 12:56:38
Dr.
Hi,
woher soll Excel denn wissen, dass in beiden Zeilen eine Überschrift steht? Also entweder beide Zeilen zu einer zusammenführen, oder nicht alle Zellen selektieren, sondern nur den Bereich, der tatsächlich sortiert werden soll.
AW: Spalten sortieren ab Zeile 3
19.06.2006 13:01:57
Wolfgang
Hallo,
ich hatte angenommen, dass durch "Selection.Sort Key1:=Range("A3")," Excel angegeben bekommt, dass ab A3 sortiert werden soll. Da die Überschriften in Zeile 1 andere sind, als in Zeile 2, kann ich diese nicht zusammenführen. Kann ich den Bereich der ja von A3 bis U.. geht, variabel zuweisen? - Die Zeilen enden nicht immer fest an gleicher Stelle, kann z.B. U55 sein, kann aber auch U150 sein. Danke schon jetzt wieder für die Rückantwort.
Gruß - Wolfgang
Anzeige
AW: Spalten sortieren ab Zeile 3
19.06.2006 13:27:47
Dr.
Probiers mal mit
UsedRange.Sort .....
AW: Spalten sortieren ab Zeile 3
19.06.2006 14:11:09
Harald
Hi,
falls das Blatt über Spalte U hinaus zwar genutzt aber nicht sortiert werden soll, gehts
auch mit
Range("A3").CurrentRegion.Sort....
In diesem Fall muss Spalte V als Trennspalte fungieren, also komplett leer sein.
Gruss Harald
Anzeige
AW: Spalten sortieren ab Zeile 3
19.06.2006 20:44:02
Daniel
Hallo,
du sortierst alles, was du selektiert hast, nämlich mit Cells.select alle Zellen
das Range nach Key1 gibt eigentlich nur die Spalte an, nach der sortiert wird. und mit Header:=xlyes legst du fest, daß die erste Zeile (und nur die erste Zeile) deiner selektion nicht mitsortiert wird.
Lösung eins: (einfachste)
- dein Zellbereich, den du sortieren möchtest ist grenzt vollständig an Rand oder leere Zellen;
dann mit Range"A3".currentregion.sort ..... (Header je nach dem)
Wenn du das nicht gewährleisten kannst, dann so
Dim Zelle1, Zelle2 as range
set Zelle1 = range("A3")
set Zelle2 = range("U65000").end(xlup) 'letzte Zelle mit Inhalt in Spalte U
Range(Zelle1, Zelle2).sort .... header:=xlno
Gruß, Daniel
(und baut das application.screenupdating = false erst ein, wenn ihr sicher seit, das euer Makro läuft, außerdem kommt ne gute programmierung in über 90% der fälle ohne aus)
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Spalten sortieren ab Zeile 3 in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne dein Excel-Dokument und gehe zu dem Arbeitsblatt, das die Daten enthält.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject" > Einfügen > Modul).

  4. Kopiere und füge den folgenden Code ein:

    Private Sub Sort()
       Application.ScreenUpdating = False
       Dim Zelle1 As Range
       Dim Zelle2 As Range
    
       Set Zelle1 = Range("A3")
       Set Zelle2 = Range("U65000").End(xlUp) 'letzte Zelle mit Inhalt in Spalte U
    
       Range(Zelle1, Zelle2).Sort Key1:=Zelle1, Order1:=xlAscending, Header:=xlNo
       Application.ScreenUpdating = True
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Führe das Makro aus (Entwicklertools > Makros > Wähle "Sort" > Ausführen).

Mit dieser Methode kannst du sicherstellen, dass Excel nur die spezifischen Zeilen sortiert und die erste Zeile nicht beeinflusst wird.


Häufige Fehler und Lösungen

  • Fehler: Sortierung beginnt nicht ab Zeile 3.

    • Lösung: Stelle sicher, dass im Code Header:=xlNo gesetzt ist, um anzugeben, dass die erste Zeile nicht sortiert werden soll.
  • Fehler: Excel sortiert die erste Zeile mit.

    • Lösung: Verwende die angegebene Methode, um die Sortierung auf den gewünschten Bereich zu beschränken.

Alternative Methoden

Eine weitere Möglichkeit, um die Sortierung ab Zeile 3 zu erreichen, ist die Verwendung des CurrentRegion-Befehls, der den benachbarten Bereich um die gewählte Zelle erkennt.

Range("A3").CurrentRegion.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlNo

Diese Methode ist besonders nützlich, wenn du gesamte Tabellen sortieren möchtest, ohne die erste Zeile zu beeinflussen.


Praktische Beispiele

Angenommen, du hast folgende Daten in Excel:

A B C
ID Name Alter
1 Max 22
2 Anna 25
3 Tom 20

Wenn du nur die Zeilen ab 3 sortieren möchtest, kannst du die oben genannten Methoden verwenden, um die Daten nach Alter zu sortieren, ohne die Überschrift in Zeile 1 zu beeinflussen.


Tipps für Profis

  • Vermeide die Verwendung von Cells.Select: Dies kann zu unerwartetem Verhalten führen. Stattdessen ist es besser, direkt mit dem Range-Objekt zu arbeiten.
  • Nutze Application.ScreenUpdating = False nur, wenn du sicher bist, dass dein Makro funktioniert. Dies kann die Ausführungsgeschwindigkeit erhöhen.
  • Teste dein Makro in einer Kopie deiner Datei, um unerwünschte Veränderungen an den Originaldaten zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich nur bestimmte Zeilen sortieren?
Du kannst den Bereich, den du sortieren möchtest, direkt im VBA-Code angeben, um nur die relevanten Daten zu sortieren.

2. Was mache ich, wenn ich mehrere Spalten sortieren möchte?
Du kannst mehrere Key-Parameter im Sort-Befehl hinzufügen, um nach mehreren Kriterien zu sortieren, z. B. Key1, Key2, usw.

3. Warum wird die erste Zeile nicht erkannt?
Wenn du Header:=xlYes verwendest, wird Excel annehmen, dass die erste Zeile Teil der Daten ist. Setze Header:=xlNo, um die erste Zeile nicht mitzunehmen.

4. Kann ich die Sortierung auch manuell durchführen?
Ja, du kannst auch den Filter in Excel verwenden, um die Daten manuell zu sortieren, indem du die Filteroptionen in der Menüleiste nutzt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige