Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1172to1176
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

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!

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
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
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
Anzeige
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

51 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige