Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1848to1852
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

Benutzerdefiniert sortieren VBA

Benutzerdefiniert sortieren VBA
25.09.2021 12:06:31
Ro
Hallo zusammen,
ich bitte wieder mal um euren Rat:
Und zwar würde ich gerne die Spalte F - "Benutzerdefiniert" sortieren- nach "VAMI 1+2,OLI 1+2,VAB", ich habe dazu auch schon einen Code:

Dim Bereich As Range
Set Bereich = Tabelle1.AutoFilter.Range.SpecialCells(xlCellTypeVisible)
ActiveWorkbook.Worksheets("Dichtheitsübersicht").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Dichtheitsübersicht").Sort.SortFields.Add2 Key:=ActiveWorkbook.Worksheets("Dichtheitsübersicht").Range( _
"F11:F100000"), SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
"VAMI 1+2,OLI 1+2,VAB", DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Dichtheitsübersicht").Sort
.SetRange Bereich
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Die Sortierung funktioniert soweit, aber sie beginnt schon mit der ersten Zeile, es sollte aber erst ab der 11. Zeile sortiert werden, alles was darüber liegt nicht.
Besten Dank für euren Input.

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Benutzerdefiniert sortieren VBA
25.09.2021 12:12:20
Oberschlumpf
Hi
änder...

.SetRange Bereich
...um in...

.SetRange "F11:F100000"
oder pass Bereich an.
Hilfts?
Ciao
Thorsten
AW: Benutzerdefiniert sortieren VBA
25.09.2021 12:17:25
Ro
Nein leider nicht, ich habe über 10.000 Zeilen mit Inhalt, und die Spalte A ist gefiltert, sodass in der Tabelle nur mehr ca. 100 Zeilen angezeigt werden.
Das Makro sollte nur die "Sichtbaren" Zeilen sortieren, ab Zeile 11 bis "Tabelle1.AutoFilter.Range.SpecialCells(xlCellTypeVisible)"
AW: Benutzerdefiniert sortieren VBA
25.09.2021 12:43:04
Piet
Hallo
mit Sortieren von Autofilter habe ich mich NIE beschäftigt, konnte es aber nicht lassen eine Lösung auszuprobieren!
Holt man sich mit Bereich die Adresse der sichtbaren Zellen werden alle Zellen einzeln angezeigt. Das ist nicht brauchbar
Nimmt man aber die erste und letzte Adresse als SortBereich sollte es funktionieren. Probier es bitte mal aus. Viel Glück ....
mfg Piet
  • 
    Sub Test()
    Dim Bereich As String, SortBereich As String
    Bereich = Selection.SpecialCells(xlCellTypeVisible).Address
    SortBereich = Left(Bereich, InStr(Bereich, ":") - 1) & ":" & Mid(Bereich, InStrRev(Bereich, ":") * 1)
    MsgBox Bereich & vbLf & SortBereich
    End Sub
    

  • Anzeige
    AW: Benutzerdefiniert sortieren VBA
    25.09.2021 13:06:03
    Ro
    Hallo Piet,
    danke für deinen Vorschlag, leider bekomme ich einen "Laufzeitfehler 13 - Typenunverträglich":
    
    Sub Makro1()
    ' Makro1 Makro
    Dim Bereich As String, SortBereich As String
    Bereich = Selection.SpecialCells(xlCellTypeVisible).Address
    SortBereich = Left(Bereich, InStr(Bereich, ":") - 1) & ":" & Mid(Bereich, InStrRev(Bereich, ":") * 1)
    MsgBox Bereich & vbLf & SortBereich
    ActiveWorkbook.Worksheets("Dichtheitsübersicht").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Dichtheitsübersicht").Sort.SortFields.Add2 Key:=ActiveWorkbook.Worksheets("Dichtheitsübersicht").Range( _
    "F11:F100000"), SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
    "VAMI 1+2,OLI 1+2,VAB", DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Dichtheitsübersicht").Sort
    .SetRange SortBereich
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
    End With
    End Sub
    

    Anzeige
    AW: Benutzerdefiniert sortieren VBA
    25.09.2021 14:55:57
    Ro
    Hallo zusammen,
    ich hab diesen Lösungsweg gefunden, scheint auch zu funktionieren:
    
    ActiveWorkbook.Worksheets("Dichtheitsübersicht").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Dichtheitsübersicht").AutoFilter.Sort.SortFields.Add2 Key:= _
    Range("F11:F1000000"), SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder _
    :="OLI 1+2,VAB,VAMI 1+2", DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Dichtheitsübersicht").AutoFilter.Sort
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
    End With
    
    Sortiert aber nur nach Alphabet absteigend.
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige