Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Spalten sortieren mit Spaltenbreite

Spalten sortieren mit Spaltenbreite
15.05.2020 17:29:28
David
Hallo,
vielen Dank für dieses Forum.
Ich muss in einem Arbeitsblatt Spalten mehrfach umsortieren, was ich mit der .sort Methode gut hinbekomme. Allerdings wird die Spaltenbreite dabei offensichtlich nicht mit verschoben. Alles andere (Werte, Farben usw.) dagegen einwandfrei. Nur die Spaltenbreite eben nicht. Das verdirbt mir die ganze Formatierung.
Kennt da jemand eine Lösung?
Vielen Dank
D. Holzhey
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten sortieren mit Spaltenbreite
15.05.2020 17:37:56
Daniel
Hi
Probiermal, obs besser funktioniert, wenn du die ganzen Spalten sortierst (.EntireColumn)
Gruß Daniel
AW: Spalten sortieren mit Spaltenbreite
15.05.2020 17:51:58
David
Hallo und vielen Dank. Habe es mal eingefügt (s.u.) das hat noch nicht geholfen. habe ich es an der richtigen Stelle eingefügt?
Danke
'Spalten sortieren
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Add Key:=Range(Cells(Ordnungszeile, 5), Cells(Ordnungszeile, 300)), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Tabelle1").Sort
.SetRange Range("E1:KN370").EntireColumn
.Header = xlGuess
.MatchCase = False
.Orientation = xlLeftToRight
.SortMethod = xlPinYin
.Apply
End With
Anzeige
AW: Spalten sortieren mit Spaltenbreite
15.05.2020 18:24:39
Daniel
Ja, wenn an der Stelle.
Im Prinzip würde dann auch reichen Range("E:KN")
Wenn's nicht geht, wird's schwierig
Dann müsstest du dir die Spaltenbreite merken und hinterher wieder herstellen.
Probier's Mal so:
Füge eine zusätzliche Zeile ein (bspw Zeile 1) Vor dem Sortieren lässt du dann folgenden Code laufen:
For S = 5 to 300
Cells(1, S) = Columns(S).ColumnWidth
Next
Nach dem Sortieren dann
For S = 5 to 300
Columns(S).ColumnWidth = Cells(1, S).value
Next
Im Prinzip reicht es auch, wenn du die erste Schleife in einem anderen Makro einmal laufen lässt und dann die SollspaltenBreite dort fest einträgst.
Dann kannst du sie mit der zweiten Schleife immer wieder herstellen, falls mal jemand was verstellt hat.
Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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