Clever-Excel-Forum

Normale Version: Code anpassen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo EXCELER, meine Tabelle soll sortiert werden und zwar nach dem Inhalt in Spalte "G". Der Code soll nur soweit sortieren, wie die Zeilen in Spalte "B" beschrieben sind. Ich habe da ein Makro aufgezeichnet. Das funktioniert auch wunderbar. Aber jetzt kommts, Zeilen können mehr oder weniger werden. Das bedeutet, mein Makro funktioniert nicht mehr, wie es soll. Könnte mir bitte jemand den Code anpassen?
Code:
Sub Ersatz()
'
' Ersatz Makro
'

'
    Sheets("Ersatzteilliste").Select
    ActiveSheet.Unprotect
    Range("A2:G1222").Select
    ActiveWorkbook.Worksheets("Ersatzteilliste").sort.SortFields.clear
    ActiveWorkbook.Worksheets("Ersatzteilliste").sort.SortFields.Add2 Key:=Range( _
        "G2:G1222"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("Ersatzteilliste").sort
        .SetRange Range("A2:G1222")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
   
End Sub
Vielen Dank
Karlheinz
Moin!
(27.01.2023, 23:08)Karlheinz16 schrieb: [ -> ]Der Code soll nur soweit sortieren, wie die Zeilen in Spalte "B" beschrieben sind.

Hat Spalte B denn mehr oder weniger Zeilen als Spalte G?
Ich gehe mal davon aus, dass das unerheblich ist.
Es reicht Folgendes:
Sub Sortieren()
With Worksheets("Ersatzteilliste")
  .Unprotect
  .Range("A1").CurrentRegion.Sort .Range("G1"), Header:=xlYes
  .Protect
End With
End Sub

Gruß Ralf
Hallo Ralf, vielen Dank für deine Meldung. Nein, alle habe gleich viele Zeilen, nur die Zeile "B" ist die Einzige, die keine Formel enthält. Ich habe ja schon diverse Versuche gemacht, die leider ohne Erfolg waren. Da ich weiß, dass wenn eine Formel in einer Zelle steht, das Verhalten beim ansprechen in einem Code nicht erwünschte Ergebnisse liefern kann, muss also soweit, wie in Spalte "B" beschrieben ist. 
Leider kann ich den Code erst heute Nachmittag testen. Falls es Probleme geben sollte, melde ich mich noch einmal. RPP63 
Hallo Ralf,
leider läuft der Code nicht, es kommt folgende Fehlermeldung:
Moin!
Wenn mein Code nicht funktioniert, dürfte es Deiner auch nicht.
Wie die Fehlermeldung deutlich macht:
Verbundene Zellen lassen sich nicht sortieren.
Ich wüsste auch nicht, was die in einer Datenliste zu suchen haben.

Lade doch mal eine anonymisierte Datei hoch, deren Aufbau aber exakt dem Original entsprechen muss.

Gruß Ralf
Dann RPP's code ergänzt :

Code:
Sub Sortieren()
  With Worksheets("Ersatzteilliste")
    .Unprotect
    .cells.unmerge
    .Range("A1").CurrentRegion.Sort .Range("G1"), Header:=1
  End With
End Sub

Verzichte auf  'Activate', 'Select', 'Protection','merged cells'.
Hallo Ralf und RPP,
@ Ralf,
1. auf dem gesamten Tabellenblatt ist keine einzige verbundene Zelle
2. ich glaube, ich brauche nichts mehr hoch laden, weil der Code von RPP funktioniert.
3. Viele Dank für dein Versuch, mir zu helfen.

@RPP,
1. dein Code läuft bei mir ohne Probleme
2. Vielen Dank für deine Hilfe
Ralf ist RPP63 ... 19