Code anpassen
#1
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

Nochmals vielen Dank

Gruß

Karlheinz
Antworten Top
#2
Moin!
(28.01.2023, 00: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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#3
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 

Nochmals vielen Dank

Gruß

Karlheinz
Antworten Top
#4
Hallo Ralf,
leider läuft der Code nicht, es kommt folgende Fehlermeldung:


Angehängte Dateien Thumbnail(s)
   

Nochmals vielen Dank

Gruß

Karlheinz
Antworten Top
#5
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#6
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'.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#7
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

Nochmals vielen Dank

Gruß

Karlheinz
Antworten Top
#8
Ralf ist RPP63 ... 19
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste