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

Forumthread: Spalten nach Alphabet sortieren

Spalten nach Alphabet sortieren
01.10.2014 21:34:10
Markus
HAllo zusammmen,
ich habe eine Datei mit mehreren 1000 Zeilen - jeweils max. bestehend aus Einträgen in 10 Spalten (A bis J).
Hat jemand eine Idee, wie ich jede Zeile nach Alphabet sortieren kann.
Also statt
A Z D B F G T U S V
F K M N A
so
A B D F G S T U V Z
A F K M N
Wäre super, wenn mir jemand helfen könnt.
Vielen Dank!
Viele Grüße
Markus

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Spalten nach Alphabet sortieren
01.10.2014 21:40:40
Peter
Hallo Markus,
versuche es einmal so:
'
'    alle Zeilen (jede für sich) aufsteigend sortieren
Public Sub ZeilenSort()
Dim WkSh     As Worksheet
Dim lZeile   As Long
Dim iSpalte  As Integer
Set WkSh = Worksheets("Tabelle2")
With WkSh
For lZeile = 1 To WkSh.Cells(Rows.Count, 1).End(xlUp).Row
WkSh.Range(WkSh.Cells(lZeile, 1), WkSh.Cells(lZeile, _
WkSh.Cells(lZeile, 256).End(xlToLeft).Column)).Sort _
Key1:=WkSh.Cells(lZeile, 1), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlLeftToRight
Next lZeile
End With
End Sub
Gruß Peter

Anzeige
AW: Spalten nach Alphabet sortieren
02.10.2014 06:12:30
Markus
Hall Peter,
ich bekomme beim Start einen Laufzeitfehler.
Markiert wird folgende Stelle im Makro:
WkSh.Range(WkSh.Cells(lZeile, 1), WkSh.Cells(lZeile, _
WkSh.Cells(lZeile, 256).End(xlToLeft).Column)).Sort _
Key1:=WkSh.Cells(lZeile, 1), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlLeftToRight
Hast Du noch eine Idee?`
Viele Grüße
Markus

Anzeige
AW: Spalten nach Alphabet sortieren
02.10.2014 06:37:54
Hajo_Zi
Hallo Markus,
es gibt Tabelle2 mit Daten?

AW: Spalten nach Alphabet sortieren
02.10.2014 10:21:50
Peter
Hallo Markus,
die Daten stehen bei mir im Tabellenblatt "Tabelle2" ab Zeile 1
Option Explicit
'    alle Zeilen (jede für sich) aufsteigend sortieren
Public Sub ZeilenSort()
Dim WkSh     As Worksheet
Dim lZeile   As Long
Dim iSpalte  As Integer
Dim lLetzte  As Long
Set WkSh = Worksheets("Tabelle2") ' den Tabellenblattnamen ggf. anpassen!
With WkSh
lLetzte = .Columns("A:Z").Find("*", SearchDirection:=xlPrevious).Row
For lZeile = 1 To lLetzte
iSpalte = IIf(IsEmpty(Cells(lZeile, Columns.Count)), Cells(lZeile, _
Columns.Count).End(xlToLeft).Column, Columns.Count)
WkSh.Range(WkSh.Cells(lZeile, 1), WkSh.Cells(lZeile, iSpalte)).Sort _
Key1:=WkSh.Cells(lZeile, 1), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlLeftToRight
Next lZeile
End With
End Sub
Das Makro noch etwas an die jetzt größere Spaltenanzahl angepasst.
Gruß Peter

Anzeige
AW: jetzt mit Dokumentation
02.10.2014 11:14:28
Peter
Hallo Markus,
ich habe noch Dokumentation hinzugefügt.
Option Explicit
'    alle Zeilen (jede für sich) aufsteigend sortieren
Public Sub ZeilenSort()
Dim WkSh     As Worksheet
Dim lZeile   As Long
Dim iSpalte  As Integer
Dim lLetzte  As Long
Set WkSh = Worksheets("Tabelle2") ' den Tabellenblattnamen ggf. anpassen!
With WkSh
lLetzte = .Columns("A:Z").Find("*", SearchDirection:=xlPrevious).Row
For lZeile = 1 To lLetzte
iSpalte = IIf(IsEmpty(.Cells(lZeile, Columns.Count)), .Cells(lZeile, _
.Columns.Count).End(xlToLeft).Column, Columns.Count)
.Range(.Cells(lZeile, 1), .Cells(lZeile, iSpalte)).Sort _
Key1:=.Cells(lZeile, 1), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlLeftToRight
Next lZeile
End With
End Sub
Gruß Peter

Anzeige
AW: jetzt mit Dokumentation
02.10.2014 12:01:51
Markus
Hallo Peter,
funktioniert bestens. :-)
Danke für Deine Hilfe!
Viele Grüße
Markus

AW: Spalten nach Alphabet sortieren
02.10.2014 12:34:12
Kathrin
Was hältst du hiervon:
Private Sub Workbook_Open()
'Datei immer mit dem Tabellenblatt "Übersicht" öffnen
Sheets("Übersicht").Select
' Sortieren von Arbeitsblättern
Dim i As Integer, j As Integer, k As Integer
k = ActiveWorkbook.Worksheets.Count
For i = 1 To k
For j = i To k
If Worksheets(j).Name 
Hier kannst du gleich noch ein Tabellenbklatt auswählen, welches immer als erstes geöffnet werden soll sowie z.B. ein bestimmtes Tabellenblatt nach dieser Sortierung an eine bestimmte Stelle setzen.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige