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

VBA: Auslassen von Zeilen bei der Sortierung

Forumthread: VBA: Auslassen von Zeilen bei der Sortierung

VBA: Auslassen von Zeilen bei der Sortierung
23.07.2003 13:54:23
Mannson
Hallo!

Ich möchte gerne eine Tabelle nach einer Spalte sortieren. Dabei sollen allerdings Zeilen, dessen Zellen verbunden sind, ignoriert werden.
Gibt es da eine Möglichkeit?

Guß

Mannson
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Auslassen von Zeilen bei der Sortierung
23.07.2003 14:07:30
Nepumuk
Hallo Mannson,
nicht ganz einfach, aber per Programm geht es schon. Nur noch ein paar Angaben:
1. Welche Spalte soll sortiert werden?
2. Sollen andere Spalten die Sortierung mitmachen?
3. Wo sollen die verbundenen Zellen nach der Sortierung stehen, ganz am Anfang oder ganz am Ende der sortierten Liste oder sollen sie iher Position beibehalten?
Gruß
Nepumuk
P.S. Weiter Fragen können bei Bedarf noch folgen.


Anzeige
AW: VBA: Auslassen von Zeilen bei der Sortierung
23.07.2003 14:39:04
Mannson
Ich sollte vielleicht dazu sagen, dass das Sortieren eine Teilaufgabe eine Add-In's ist, mit dem nach doppelten Einträgen gesucht werden kann.

1. Die Spalte, nach der sortiert werden soll bzw. welche als Suchkriterium dient, wird per Dialogfenster abgefragt.

2. Eigentlich sollen alle Zeilen, in denen etwas steht, zur Sortierung hinzugezogen werden. Nur Zeilen mit verbundenen Zellen nicht.

3. Das Ergebnis soll dann komplett ohne diese Zeilen sein.

Das Hauptproblem liegt dann wohl in dem Erkennen dieser Zeilen unter VBA.

Gruß
Mannson


Anzeige
AW: VBA: Auslassen von Zeilen bei der Sortierung
23.07.2003 14:58:58
Nepumuk
Hallo Mannson,
wieso Problem?
If Range("A1").MergeCells Then Beep
Versuch die Zeile mal mit verbundenen und nicht verbundenen Zellen.
Gruß
Nepumuk


AW: VBA: Auslassen von Zeilen bei der Sortierung
24.07.2003 08:35:02
Mannson
Das sollte eigentlich genügen.
Danke dafür, Nepumuk.

Gruß
Mannson


;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeilen bei der Sortierung in Excel mit VBA ignorieren


Schritt-für-Schritt-Anleitung

Um in Excel nur bestimmte Zeilen zu sortieren und dabei Zeilen mit verbundenen Zellen zu ignorieren, kannst Du das folgende VBA-Skript verwenden:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code in das Modul ein:

    Sub SortiereOhneVerbunden()
       Dim ws As Worksheet
       Dim rng As Range
       Dim i As Long
    
       Set ws = ThisWorkbook.Sheets("DeinBlattname") ' Ersetze "DeinBlattname" durch den Namen deines Arbeitsblattes
       Set rng = ws.Range("A1:A" & ws.Cells(ws.Rows.Count, "A").End(xlUp).Row) ' Spalte A anpassen, falls nötig
    
       ' Temporäre Array für die Sortierung
       Dim tempArr() As Variant
       ReDim tempArr(1 To rng.Rows.Count)
       Dim index As Long
       index = 1
    
       ' Überprüfen und Auslassen von verbundenen Zellen
       For i = 1 To rng.Rows.Count
           If Not rng.Cells(i, 1).MergeCells Then
               tempArr(index) = rng.Cells(i, 1).Value
               index = index + 1
           End If
       Next i
    
       ' Sortiere das Array
       ReDim Preserve tempArr(1 To index - 1)
       Call BubbleSort(tempArr)
    
       ' Ergebnisse zurückschreiben
       For i = 1 To UBound(tempArr)
           rng.Cells(i, 1).Value = tempArr(i)
       Next i
    End Sub
    
    Sub BubbleSort(arr As Variant)
       Dim i As Long, j As Long
       Dim temp As Variant
    
       For i = LBound(arr) To UBound(arr) - 1
           For j = i + 1 To UBound(arr)
               If arr(i) > arr(j) Then
                   temp = arr(i)
                   arr(i) = arr(j)
                   arr(j) = temp
               End If
           Next j
       Next i
    End Sub
  4. Schließe den VBA-Editor und führe das Makro über Entwicklertools > Makros aus.


Häufige Fehler und Lösungen

  • Fehler: Makro kann nicht ausgeführt werden.

    • Stelle sicher, dass die Makros in den Excel-Optionen aktiviert sind.
  • Fehler: Die Zellen werden nicht korrekt sortiert.

    • Überprüfe, ob Du die richtige Spalte im Code angegeben hast und dass die Zellen nicht versehentlich verbunden sind.

Alternative Methoden

Falls Du keine VBA-Lösungen verwenden möchtest, gibt es auch die Möglichkeit, die Daten manuell zu sortieren. Du kannst dies tun, indem Du die gewünschten Zeilen kopierst und in eine neue Tabelle einfügst, bevor Du die Daten sortierst. Achte darauf, dass Du die verbundenen Zellen manuell überprüfst und löscht, bevor Du die Sortierung durchführst.


Praktische Beispiele

Wenn Du beispielsweise eine Liste mit Namen in Spalte A hast und einige dieser Namen in verbundenen Zellen stehen, wird das oben genannte VBA-Skript nur die Namen, die nicht verbunden sind, sortieren. So kannst Du sicherstellen, dass Du in Excel nur bestimmte Zeilen sortierst, während die verbundenen Zeilen ignoriert werden.


Tipps für Profis

  • Setze Vorfilter auf Deine Daten, um die Übersichtlichkeit zu verbessern, bevor Du die Sortierung durchführst.
  • Verwende benannte Bereiche, um Deine VBA-Codes flexibler zu gestalten.
  • Teste das Makro in einer Kopie Deiner Datei, um Datenverluste zu vermeiden.

FAQ: Häufige Fragen

1. Kann ich das Makro auch für andere Spalten verwenden? Ja, Du kannst die Spalte im Code anpassen, um eine andere Spalte zu sortieren.

2. Funktioniert das Skript auch in Excel 365? Ja, das Skript sollte in allen modernen Excel-Versionen funktionieren, einschließlich Excel 365.

3. Wie kann ich das Makro anpassen, um die erste Zeile auszuschließen? Füge im Code eine Bedingung hinzu, die die erste Zeile überspringt, beispielsweise durch die Anpassung der Schleife.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige