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

Forumthread: bei Einfügen Zeilen-Reihenfolge umkehren

bei Einfügen Zeilen-Reihenfolge umkehren
oliver
Hallo,
Excel bietet ja die Möglichkeit Bereiche zu kopieren und transponiert einzufügen. Manchmal muss man kopierte Daten aber in umgekehrter Reihenfolge einfügen, weil z.B. bei PowerPoint 100% Balken die Zeilen-Reihenfolge in dem Datenblatt andersrum zur angezeigten Legende des Diagramms ist.
Es soll also eine Tabelle wie die folgende ganz normal kopiert werden:
A1: HL B1: 0,2mio
A2: HH B2: 1,6mio
A3: KS B3: 0,2mio
und bei Einfügen mit VBA (z.B. auf einer bestimmten Tastenkombination Strg+Shift+V) in umgedrehter Reihenfolge eingefügt werden:
A1: KS B1: 0,2mio
A2: HH B2: 1,6mio
A3: HL B3: 0,2mio
Ist das per Makro möglich?
Nach langem Suchen stieß ich auf das geniale Makro von Tino, dass zumindest eine Liste in einer Spalte drehen kann, aber nicht einen kopierten Bereich über mehrere Spalten (Geschrieben am: 28.07.2009 11:09:26):
https://www.herber.de/bbs/user/63476.xls
Dankbar für jegliche Hilfe dazu!
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: bei Einfügen Zeilen-Reihenfolge umkehren
06.09.2010 15:23:09
Rudi
Hallo,
so:
Sub TopDown()
Dim arr1, arr2
Dim i As Long, j As Long
arr1 = Cells(1, 1).CurrentRegion
ReDim arr2(1 To UBound(arr1), 1 To UBound(arr1, 2))
For i = UBound(arr1) To 1 Step -1
For j = 1 To UBound(arr1, 2)
arr2(UBound(arr1) - i + 1, j) = arr1(i, j)
Next
Next
Cells(1, 1).Resize(UBound(arr1), UBound(arr1, 2)) = arr2
End Sub

Gruß
Rudi
Anzeige
AW: bei Einfügen Zeilen-Reihenfolge umkehren
06.09.2010 15:58:09
oliver
Rudi Maintaire, danke für die Antwort!
Es klappt leider noch nicht:
Wenn ich einen Bereich in xls kopiere und versuche diesen Bereich in umgekehrter Reihenfolge mit Hilfe dieses Makros in xls (oder ppt) einzufügen, kommt die Fehlermeldung: "typen unverträglich".
Mache ich was falsch?
Anzeige
? in ppt :)
06.09.2010 16:12:00
EvilRik
Hallo Oliver,
du möchtest also einen Bereich eines Arbeitsblattes z.b mit STRG+V kopieren.
Dann soll VBA dies im Temporären Speicher quasi umsortieren (Reihenfolge ändern), dadurch soll dann das ursprüngliche Koppierte im Tempspeicher ersetzt werden, sodass du es auch z.B. in *.ppt einfügen kannst?
UiUiUi
Da bin ich auf jeden Fall raus. Ohne Hilfspalte wüsste ich nicht wie.
Bin mal gespannt, ob das jemand lösen kann ;)
Gruß
Henrik
Anzeige
das war ja auch nur ...
06.09.2010 16:52:39
Rudi
Hallo,
... die Erweiterung zu Tinos Code. Es wird einfach nur die aktuelle Tabelle umgedreht.
Ich wüsste nicht, wie du die Zwischenablage sortieren können solltest.
Gruß
Rudi
AW: bei Einfügen Zeilen-Reihenfolge umkehren
07.09.2010 11:51:50
ptonka
Hallo Oliver,
ich habe mal etwas ähnliches für mich programmiert.
Allerdings wird hierbei die Umsortierung in der Spalte direkt neben der markierten Spalte vorgenommen.
D.h. Man markiert einen Bereich in einer Spalte und startet dann mein Makro.
Dann wird der markierte Bereich direkt daneben in umgekehrter Reihenfolge eingefügt.
Es darf aber nur eine Spalte markiert sein - ansonsten wird das Programm verlassen.
Das Programm wird auc verlassen, wenn nur eine eizige Zelle markiert ist.
Vielleicht kannst Du den Code für Deine Verhältnisse anpassen oder gar übernehmen.
Hier der Code:
Sub umsortieren()
Dim Zeile1, Zeile2, Spalte As Integer
Bereich = Selection.Address(ReferenceStyle:=xlR1C1)
'Falls nur eine Zelle markiert ist
BL = Len(Bereich)
If BL  Spalte2 Then Exit Sub
For i = Zeile1 To Zeile2
Cells(i, Spalte1 + 1).Value = Cells(Zeile1 + (Zeile2 - i), Spalte1).Value
Next i
End Sub

Gruß,
Ptonka
Anzeige
AW: bei Einfügen Zeilen-Reihenfolge umkehren
07.09.2010 11:52:30
ptonka
Hallo Oliver,
ich habe mal etwas ähnliches für mich programmiert.
Allerdings wird hierbei die Umsortierung in der Spalte direkt neben der markierten Spalte vorgenommen.
D.h. Man markiert einen Bereich in einer Spalte und startet dann mein Makro.
Dann wird der markierte Bereich direkt daneben in umgekehrter Reihenfolge eingefügt.
Es darf aber nur eine Spalte markiert sein - ansonsten wird das Programm verlassen.
Das Programm wird auc verlassen, wenn nur eine eizige Zelle markiert ist.
Vielleicht kannst Du den Code für Deine Verhältnisse anpassen oder gar übernehmen.
Hier der Code:
Sub umsortieren()
Dim Zeile1, Zeile2, Spalte1, Spalte2 As Integer
Bereich = Selection.Address(ReferenceStyle:=xlR1C1)
'Falls nur eine Zelle markiert ist
BL = Len(Bereich)
If BL  Spalte2 Then Exit Sub
For i = Zeile1 To Zeile2
Cells(i, Spalte1 + 1).Value = Cells(Zeile1 + (Zeile2 - i), Spalte1).Value
Next i
End Sub

Gruß,
Ptonka
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeilen-Reihenfolge in Excel umkehren


Schritt-für-Schritt-Anleitung

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

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

  3. Code einfügen: Füge folgenden VBA-Code in das Modul ein:

    Sub TopDown()
        Dim arr1, arr2
        Dim i As Long, j As Long
        arr1 = Cells(1, 1).CurrentRegion
        ReDim arr2(1 To UBound(arr1), 1 To UBound(arr1, 2))
    
        For i = UBound(arr1) To 1 Step -1
            For j = 1 To UBound(arr1, 2)
                arr2(UBound(arr1) - i + 1, j) = arr1(i, j)
            Next
        Next
    
        Cells(1, 1).Resize(UBound(arr1), UBound(arr1, 2)) = arr2
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und führe das Makro aus, um die Werte in umgekehrter Reihenfolge einzufügen.


Häufige Fehler und Lösungen

  • Typen unverträglich: Dieser Fehler tritt auf, wenn die Daten, die du versuchst zu verarbeiten, nicht dem erwarteten Typ entsprechen. Achte darauf, dass du nur die Daten kopierst, die du umkehren möchtest.

  • Makro funktioniert nicht: Stelle sicher, dass du das richtige Arbeitsblatt aktiv hast und die Daten nicht in einer leeren Zelle beginnen.


Alternative Methoden

  1. Excel Formeln: Du kannst die Reihenfolge der Werte auch mit einer Formel umkehren. Angenommen, deine Daten sind in den Zellen A1:A3, dann könntest du in Zelle B1 folgende Formel verwenden:

    =INDEX($A$1:$A$3, COUNTA($A$1:$A$3) - ROW() + 1)
  2. Daten sortieren: Eine einfache Möglichkeit, die Reihenfolge der Daten zu ändern, ist die Verwendung der Sortierfunktion in Excel. Du kannst die Daten in absteigender Reihenfolge sortieren.


Praktische Beispiele

Angenommen, du hast folgende Werte in den Zellen:

A B
HL 0,2mio
HH 1,6mio
KS 0,2mio

Nach dem Ausführen des Makros wird die Tabelle wie folgt aussehen:

A B
KS 0,2mio
HH 1,6mio
HL 0,2mio

Das ist besonders nützlich, wenn du die Excel-Datenreihenfolge umkehren möchtest, um sie in einem PowerPoint-Diagramm korrekt darzustellen.


Tipps für Profis

  • Shortcut erstellen: Du kannst das Makro an eine Tastenkombination binden, um die Funktion schneller aufzurufen. Gehe dazu zu Entwicklertools > Makros > wähle dein Makro > Optionen und weise eine Tastenkombination zu.

  • Hilfspalte verwenden: Manchmal kann es hilfreich sein, eine Hilfspalte zu verwenden, um die umgekehrte Reihenfolge manuell zu erstellen und dann die Werte in die gewünschte Spalte zu kopieren.


FAQ: Häufige Fragen

1. Wie kann ich Excel-Werte in umgekehrter Reihenfolge einfügen?
Du kannst dies mit dem oben beschriebenen VBA-Makro oder durch Verwendung von Sortierfunktionen in Excel tun.

2. Funktioniert das auch für mehrere Spalten?
Ja, das Makro kann leicht angepasst werden, um mehrere Spalten gleichzeitig zu verarbeiten.

3. Gibt es eine Möglichkeit, die Reihenfolge direkt in der Excel-Oberfläche zu ändern?
Ja, du kannst die Daten manuell sortieren oder die oben genannte Formel verwenden, um die Reihenfolge dynamisch zu ändern.

4. Was ist der Unterschied zwischen „Reihenfolge umkehren“ und „Daten sortieren“?
„Reihenfolge umkehren“ bedeutet, die Daten genau in umgekehrter Reihenfolge anzuzeigen, während „Daten sortieren“ die Werte basierend auf bestimmten Kriterien anordnet.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige