Registriert seit: 09.05.2015
Version(en): 2013, Office 365
Hallo zusammen,
zunächst wünsche ich allen ein gutes neues Jahr.
Nun... ich verwende ein tolles Makro für das verschieben von Spalten.
Leider wird die Formatierung der Zellen beim verschieben nicht übernommen.
Deshalb meine Frage an Euch ob Ihr mir zeigen könnt was an dem Makro zu ändern wäre um nicht nur die Werte zu verschieben sondern auch die Formatierung zu übernehmen.
Code:
'Markierte Spalte nach rechts verschieben
Sub SwitchColumns_Rechts()
Dim rgSelected As Range
Dim rgNextColumn As Range
Dim TempArray
On Error GoTo Switch_Error
If Selection.Columns.Count > 1 Or _
Selection.Areas.Count > 1 Then
MsgBox "Die Markierung darf nur aus " & "einer Spalte bestehen und sie muss zusammenhängend sein!"
Else
Set rgSelected = Intersect(Selection, ActiveSheet.UsedRange)
Set rgNextColumn = rgSelected.Offset(0, 1)
TempArray = rgSelected.Formula
rgSelected.Formula = rgNextColumn.Formula
rgNextColumn.Formula = TempArray
End If
Switch_End:
Set rgNextColumn = Nothing
Set rgSelected = Nothing
Exit Sub
Switch_Error:
MsgBox "Fehler beim Spaltentauch!" & _
"Fehernr. " & Err.Number & ":" & vbCr & _
Err.Description
Resume Switch_End
End Sub
Vielen Dank für Eure Hilfe!
Registriert seit: 10.04.2014
Version(en): 2016 + 365
Hi,
(07.01.2016, 16:24)sharky51 schrieb: Deshalb meine Frage an Euch ob Ihr mir zeigen könnt was an dem Makro zu ändern wäre um nicht nur die Werte zu verschieben sondern auch die Formatierung zu übernehmen.
versuche mal:
Code:
rgSelected.copy rgNextColumn
statt
Code:
rgSelected.Formula = rgNextColumn.Formula
Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:1 Nutzer sagt Danke an Rabe für diesen Beitrag 28
• sharky51
Registriert seit: 09.05.2015
Version(en): 2013, Office 365
Hallo Ralf,
das mit der Übernahme der Formatierung funktioniert...die zu kopierende Spalte wird in die nächste Spalte nach rechts kopiert (mit Formaten).
Das Ziel des Makros ist aber die Spalten zu vertauschen und das funktioniert nun nicht mehr...also z.B. Werte in Spalte A nach Spalte B kopieren und die ursprünglichen Werte in Spalte B dann in Spalte A
schieben..aber alles ohne Formatverlust.
Vielleicht hast Du noch ne Idee wie man das bewerkstelligen kann?
Danke!
Registriert seit: 10.04.2014
Version(en): 2016 + 365
Hi,
(07.01.2016, 21:43)sharky51 schrieb: Das Ziel des Makros ist aber die Spalten zu vertauschen und das funktioniert nun nicht mehr...also z.B. Werte in Spalte A nach Spalte B kopieren und die ursprünglichen Werte in Spalte B dann in Spalte A
schieben..aber alles ohne Formatverlust.
dann kopierst Du Spalte A nach Spalte C, Spalte B nach A, Spalte C nach B und dann löschst Du Spalte C.
Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:1 Nutzer sagt Danke an Rabe für diesen Beitrag 28
• sharky51
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo,
Spalten verschiebe/tausche ich einfach mit gedrückter Shifttaste.
Gruß Uwe
Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28
• sharky51
Registriert seit: 09.05.2015
Version(en): 2013, Office 365
Hallo Ralf & Uwe,
danke für die Rückmeldung.
Manuell möchte ich das wegen der großen Anzahl der zu vertauschenden Spalten nicht tun.
Und die hin- und her-kopiererei gefällt mir nicht so richtig bei der größeren Anzahl der zu vertauschenden Spalten.
Warum stehen die Spalten nicht gleich an der richtigen Stelle? Die Frage ist berechtigt.
Ganz einfach, ich bekomme Datenreihen in csv-Format die immer unterschiedlich aufgebaut sind die ich dann in einer gewissen Form für Auswertungen benötige.
Mit meinem gezeigten Makro habe ich ja bereits eine funktionierende Lösung....es fehlt halt nur jeweils die richtige Formatierung beim Spalten drehen.
Nun ja, vielen Dank für Euren Beitrag.
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
(07.01.2016, 23:25)sharky51 schrieb: Mit meinem gezeigten Makro habe ich ja bereits eine funktionierende Lösung....
Hallo Erich,
Dein Makro bearbeitet doch auch nur eine Spalte, die zuvor markiert werden muss.!?
Gruß Uwe
Registriert seit: 09.05.2015
Version(en): 2013, Office 365
(07.01.2016, 23:35)Kuwer schrieb: Hallo Erich,
Dein Makro bearbeitet doch auch nur eine Spalte, die zuvor markiert werden muss.!?
Gruß Uwe
Hallo Uwe,
ja das ist schon richtig....bin ja auch erst am Anfang meiner VBA-Exkursion. Wenn ich das aber mit der Formatierung nicht hinbekomme wird es übel... d.h. aufwändig...
Würde das gerne zuerst abarbeiten......
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Erich,
wenn ich das "Vertauschen" von zwei Spalten aufzeichne, bekomme ich das:
Code:
Columns("O:O").Select
Selection.Cut
Columns("M:M").Select
Selection.Insert Shift:=xlToRight
Statt ganzer Spalten gehen auch Bereiche. Codeoptimiert würde das so aussehen:
Code:
Range("O4:O6").Cut
Range("M1").Insert Shift:=xlToRight
oder wenn Du unbedingt eine Selection verschieben willst:
Code:
Selection.Cut
Range("M1").Insert Shift:=xlToRight
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 09.05.2015
Version(en): 2013, Office 365
Hallo André,
danke für den Vorschlag.
Aber hier wir doch nichts vertauscht..oder?
Du schneidest einen Quell-Bereich aus und fügst ihn an einem anderen Ziel-Ort wieder ein, der Ziel-Ort wird überschrieben.
Aber der Inhalt vom Ziel-Ort soll nicht verloren gehen sondern gleichzeitig in Quell-Bereich eingefügt werden.
Das funktioniert ja auch bereits mit meinem Makro...mir geht es aber darum beim vertauschen der Werte auch die Formatierung mit zu vertauschen.
Z.B., im Quell-Bereich steht ein Datum, im Ziel-Ort steht eine Dezimalzahl...und die Zellen haben ursprünglich natürlich die richtige Formatierung.
Nachdem Vertauschen soll das natürlich auch so sein damit die Werte richtig angezeigt werden.