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

Sortieren

Sortieren
05.02.2022 18:40:59
sigrid
Guten Abend,
ich habe folgendes Makro:

Sub SortName()
Application.ScreenUpdating = False
Dim z As Long
z = Range("A3").End(xlDown).Row
ActiveSheet.Range(Cells(3, 2), Cells(z, 7)).Select
xlSortNormal
Selection.Sort Key1:=Range("C3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("C2").Select
ActiveSheet.OptionButton2.Value = False
Application.ScreenUpdating = True
End Sub
ich löse dies mit einem Option Button aus.
Wenn ich das erste Mal drücke, bleibt die Zeile 3 so stehen, wie sie ist.
Beim 2. Mal wird die gesamt Auswahl sauber sortiert,
wieso ?
gruß sigrid

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sortieren
05.02.2022 18:55:47
Fennek
Hallo,
versuche anstelle von

Header:=xlGuess,
mal "yes"

Header:=xlYes,
mfg
AW: Sortieren
05.02.2022 19:04:58
sigrid
Hallo ?,
leider keine Änderung.

Sub SortName()
Application.ScreenUpdating = False
Dim z As Long
ActiveSheet.Unprotect (getStrPasswort)
z = Range("A3").End(xlDown).Row
ActiveSheet.Range(Cells(3, 2), Cells(z, 7)).Select
Selection.Sort Key1:=Range("C3"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("C2").Select
ActiveSheet.OptionButton2.Value = False
Application.ScreenUpdating = True
End Sub
gr sigrid
Anzeige
AW: Sortieren
05.02.2022 19:16:13
sigrid
Hallo Fennek,
komisch, so geht es:
ActiveWorkbook.Worksheets("Adressen").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Adressen").Sort.SortFields.Add2 Key:=Range( _
"B3:B14"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Adressen").Sort
.SetRange Range("B3:G14")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
hatte mal aufgezeichnet, als der Curser da war wurde sauber sortiert !
gr sigrid
hiermit klappt es aber...
05.02.2022 19:28:53
sigrid
Hallo zusammen,
hiermit klappt es.

Sub Makro1()
ActiveWorkbook.Worksheets("Adressen").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Adressen").Sort.SortFields.Add2 Key:=Range( _
"B3:B14"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Adressen").Sort
.SetRange Range("B3:G14")
' .Header = xlNo
' .MatchCase = False
'   .Orientation = xlTopToBottom
'  .SortMethod = xlPinYin
.Apply
End With
End Sub
aber ich brauch es ja wegen der länge der Tabelle.
gruß sigrid
Anzeige
AW: hiermit klappt es aber...
05.02.2022 22:47:12
Piet
Hallo
wenn du mit Länge der Tabelle eine dynamische Zeilenlänge nach unten meinst, dann mache es mit der LastZell Variante über lz1
Ich vewrkürze den Code gerne über eine 2. With Klammer, dadurch wird alles übersichtlicher.
mfg Piet
  • 
    Sub Makro1()
    With ActiveWorkbook.Worksheets("Adressen")
    lz1 .Cells(Rows.Count, 2).End(xlUp).Row
    .Sort.SortFields.Clear
    .Sort.SortFields.Add2 Key:=Range("B3:B" & lz1), SortOn:=xlSortOnValues, _
    Order:=xlAscending, DataOption:=xlSortNormal
    With .Sort
    .SetRange Range("B3:G" & lz1)
    ' .Header = xlNo
    ' .MatchCase = False
    '   .Orientation = xlTopToBottom
    '  .SortMethod = xlPinYin
    .Apply
    End With
    End With
    End Sub
    

  • Anzeige
    Bleibt hier stehen
    06.02.2022 10:10:46
    sigrid
    Guten Morgen Piet,
    bleibt hier stehen:
    Dim lz1
    With ActiveWorkbook.Worksheets("Adressen")
    gruß sigrid
    lz1.Cells(Rows.Count, 2).End(xlUp).Row
    Habe mal verändert -)
    06.02.2022 10:14:06
    sigrid
    Hallo zusammen,
    habe das Makro verändert, jetzt einwandfrei !
    
    Sub SortName()
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    Dim z As Long
    'ActiveSheet.Unprotect (getStrPasswort)
    z = Range("A3").End(xlDown).Row
    ActiveSheet.Range(Cells(2, 2), Cells(z, 7)).Select
    ActiveWorkbook.Worksheets("Adressen").Sort.SortFields.Clear
    Selection.Sort Key1:=Range("C2"), Order1:=xlAscending, Header:=xlYes, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    Range("C2").Select
    Application.ScreenUpdating = True
    Application.EnableEvents = True
    End Sub
    
    schönen Sonntag noch...
    gruß
    sigrid
    Anzeige
    AW: Sortieren
    06.02.2022 11:25:16
    Piet
    Hallo
    Sorry, hatte in meinem Code hinter lz1 lediglich das "=" Zeichen vergessen. Aber auch schön wenn du den Code selbst ans Laufen gebracht hast!
    mfg Piet

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige