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

tabelle umgekehrt sortieren

Forumthread: tabelle umgekehrt sortieren

tabelle umgekehrt sortieren
21.07.2002 13:09:49
Stefan
hallo herberfreunde,

gibt es per vba die moeglichkeit, eine beliebig lange
tabelle (a1:c???) so zu sortieren, dass die zellen
der zeile 1 nicht mehr am anfang sondern am ende stehen.
sozusagen:
was heute an erster stelle steht soll morgen an letzter stelle
stehen, zweite stelle an vorletzter usw.
eine automatische sortierung ist nicht moeglich, da wie werte
nicht nach einem eindeutigen kriterium sortiert sind.
ich moecht auch nicht mit eine hilfespalte arbeiten.

vorab vielen dank
gruss
stefan

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: tabelle umgekehrt sortieren
21.07.2002 13:25:53
Heinz
Hallo Stefan

vielleicht hilft die folgendes Makro, Du mußt es halt umschreiben:

Sub sort()
'
' sort Makro
' Makro am 21.07.2002 von HUlm aufgezeichnet
'

'
'Aufsteigend sortieren
Range("B10:B25").sort Key1:=Range("B10"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

'Absteigend sortieren
Range("B10:B25").sort Key1:=Range("B10"), Order1:=xlDescending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub

Gruß Heinz

Anzeige
Kannst du das bitte genauer erklären...
21.07.2002 15:11:09
Ramses
Hallo,

was meinst du denn da mit sortieren ?
Das was du willst, ist doch nur den Wert aus der ersten Zelle an das Ende deiner Einträge zu schreiben.

Ausserdem woher kommen die Werte:
"Was heute an erster Stelle steht, soll morgen an letzer Stelle stehen".

Wann soll das erfolgen ?
Beim öffnen der Datei oder wenn der Benutzer das will.

Gruss Rainer

Anzeige
OK, hier meine formulierung etwas deutlicher
21.07.2002 18:29:41
stefan
hallo ramses,
ich habe in einem zellbereich (z.b. a1 bis c55)
werte stehen. die werte in den zellen sind nicht sortiert.
nun will ich folgendes erreichen:
die werte der zelle a1:c1 sollen nach ablauf des makros
den platz tauschen mit den werten der zellen a55:c55
a2:c2 mit a54:c54
also: die gesamte tabelle soll in umgekehrter reihenfolge
nach ablauf des makro stehen.

mein ansatz war:
in den zellen d1:d55 die zahlen 1bis55 eintragen und dann
die tabellen nach der spalte d sortieren. das ist ein weg,
nur will ich das automatisieren (nach import von werten)
und es soll so flexibel wie moeglich gestaltet werden.
es kann naemlich sein, dass nicht nur werte von
a1:c55 sondern bis c222 stehen.

nach dem import sollen die werte in umgekehrter reihenfolge
an der gleichen stelle stehen.

ich hoffe, das war nun klarer von mir formuliert :=)

gruss
stefan

Anzeige
danke, heinz ! nur dein makro hilft
21.07.2002 18:33:47
stefan
leider nicht weiter, denn meine daten sollen nicht
auf- oder absteigend sortiert werden, sondern die tabelle
soll nach dem import aus einer anderen anwendung nur
in umgekehrter reihenfolge an der gleichen stellen stehen.

vielleicht hast du dafuer noch einen ansatz ?

erst einmal vielen dank für deine hilfe
gruss
stefan

ps: habe ramses meine frage deutlicher formuliert

Anzeige
Re: tabelle umgekehrt sortieren
21.07.2002 18:52:31
Bonte
Hallo Stefan,

wieso willst du keine Hilfsspalte? Die kannst du ja ausblenden.

Wären in deiner Hilfsspalte fortlaufende Zahlen, dann könntest du nach denen sortieren.

Gruß
Bonte

Re: OK, hier meine formulierung etwas deutlicher
21.07.2002 20:43:32
Klaus Schubert
Hallo Stefan,
versuch's mal hiermit:

Zuerst wird die Anzahl deiner Zeilen ermittelt, dann wird vorübergehend eine neue Spalte links von Spalte A erzeugt. Dort werden nun die Zahlen 1 bis LetzteZeile eingetragen, umgekehrt nach dieser Spalte sortiert und dann die "Hilfsspalte" wieder gelöscht. Da die Anzahl der Zeilen zuvor ermittelt wird, ist es egal, ob du mehr oder weniger Zeilen hast.

Gruß Klaus

Anzeige
Vertical Transponder
21.07.2002 22:46:24
Ramses
Hallo Stefan,

probier mal den Code aus.
Der stellt dir die Tabelle auf den Kopf, also das unterste zuoberst, das zweitunterste als zweites von oben usw.


Gruss Rainer

;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Tabelle umgekehrt sortieren in Excel mit VBA


Schritt-für-Schritt-Anleitung

Um eine Tabelle in Excel mit VBA umgekehrt zu sortieren, kannst du folgendes Makro verwenden. Das Makro nimmt an, dass deine Daten in den Zellen A1 bis C55 stehen und sie in umgekehrter Reihenfolge angeordnet werden sollen.

  1. Öffne Excel und drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Kopiere und füge den folgenden Code in das Modul ein:

    Sub TabelleUmkehren()
        Dim letzteZeile As Long
        Dim i As Long
        Dim temp As Variant
    
        ' Bestimme die letzte Zeile in Spalte A
        letzteZeile = Cells(Rows.Count, 1).End(xlUp).Row
    
        ' Umkehren der Werte
        For i = 1 To letzteZeile / 2
            temp = Cells(i, 1).Value
            Cells(i, 1).Value = Cells(letzteZeile - i + 1, 1).Value
            Cells(letzteZeile - i + 1, 1).Value = temp
    
            ' Wiederhole für Spalte B und C
            temp = Cells(i, 2).Value
            Cells(i, 2).Value = Cells(letzteZeile - i + 1, 2).Value
            Cells(letzteZeile - i + 1, 2).Value = temp
    
            temp = Cells(i, 3).Value
            Cells(i, 3).Value = Cells(letzteZeile - i + 1, 3).Value
            Cells(letzteZeile - i + 1, 3).Value = temp
        Next i
    End Sub
  4. Drücke F5, um das Makro auszuführen.

Dieses Makro wird die Tabelle umkehren, sodass die Werte in der ersten Zeile an die letzte Position verschoben werden und die Werte in der letzten Zeile an die erste Position.


Häufige Fehler und Lösungen

  • Fehler: Das Makro funktioniert nicht, wenn die Tabelle weniger als zwei Zeilen hat.

    • Lösung: Stelle sicher, dass die Tabelle mindestens zwei Zeilen enthält, bevor du das Makro ausführst.
  • Fehler: Die Daten werden nicht korrekt umgekehrt.

    • Lösung: Überprüfe, ob die Daten in den Zellen A1 bis C55 korrekt eingegeben sind und keine leeren Zeilen innerhalb des Bereichs vorhanden sind.

Alternative Methoden

Wenn du keine VBA-Lösung verwenden möchtest, kannst du auch eine Hilfsspalte nutzen:

  1. Füge eine neue Spalte A ein.
  2. Trage in die neuen Zellen A1 bis A55 die Zahlen 55 bis 1 ein (absteigend).
  3. Sortiere die Tabelle nach dieser neuen Spalte.
  4. Lösche die Hilfsspalte, nachdem die Sortierung abgeschlossen ist.

Diese Methode ist einfach, erfordert jedoch eine Hilfsspalte.


Praktische Beispiele

Hier ist ein einfaches Beispiel für den Einsatz des VBA-Codes:

  • Vor der Ausführung:

    A1: Apfel
    A2: Banane
    A3: Kirsche
    A4: Dattel
    A5: Traube
  • Nach der Ausführung:

    A1: Traube
    A2: Dattel
    A3: Kirsche
    A4: Banane
    A5: Apfel

Verwende diesen VBA-Code, um deine Tabelle schnell und effizient umzukehren.


Tipps für Profis

  • Automatisierung: Du kannst das Makro so anpassen, dass es beim Öffnen der Datei automatisch ausgeführt wird, indem du es in das Workbook_Open()-Ereignis einfügst.

  • Flexibilität: Um die Flexibilität zu erhöhen, kannst du den Code so ändern, dass er die Anzahl der Zeilen automatisch erkennt, anstatt sie festzulegen.

  • Fehlersuche: Verwende Debug.Print innerhalb des Codes, um Werte während der Ausführung zu protokollieren und Fehler leichter zu identifizieren.


FAQ: Häufige Fragen

1. Kann ich das Makro auch für andere Bereiche verwenden?
Ja, ändere einfach die Zellreferenzen im Code entsprechend deinem Datenbereich.

2. Wie kann ich das Makro anpassen, um nur bestimmte Spalten umzukehren?
Du kannst die Schleife im Code anpassen, um nur die gewünschten Spalten zu bearbeiten, indem du die entsprechenden Cells-Referenzen änderst.

3. Was passiert, wenn ich leere Zellen im Bereich habe?
Leere Zellen werden ignoriert, aber sie können das Ergebnis der Umkehrung beeinflussen. Stelle sicher, dass dein Datenbereich sauber ist, bevor du das Makro ausführst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige