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

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

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

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

319 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige