Hallo liebe Helfende!
Ich bin Neuling in VBA und versuche mal mein Problem verständlich zu beschreiben.
Ich muss eine xlsm-Datei neu machen, weil die alte total zerschossen war.
Nun habe ich eine Tabelle in der in 4 Spalten (eine für jeden Arbeitsbereich) die Namen der Mitarbeiter je Bereich eingefügt werden. Da die Quell-Tabelle 100 Zeilen umfasst (und NICHT geändert werden darf), aber nur ca 40 Mitarbeiter vorhanden sind, gibt es in der Ziel-Tabelle viele Leerzellen. Die Ziel-Tabelle konnte in der alten Datei (übrigens 2002 erstellt) durch drücken von Strg+O bereinigt werden, heisst, alle Mitarbeiter wurden untereinander sortiert und dann erst die Leerzellen. Also erst Name - frei - frei - Name - frei, dann Name - Name - frei - frei - frei.
Den Code habe ich aus der alten Datei kopiert - und funktioniert nicht in der neuen. Im MS VBA-Editor komme ich über "Debuggen" - "Ausführen bis Cursor-Position" zwar an mein Ziel, ist aber nicht Sinn und Zweck.
Ich hoffe, es verständlich 'rüber gebracht zu haben.
Und nun der Code:
Sub Makro3()
'
' Makro3 Makro
' Namen sortieren
'
' Tastenkombination: Strg+o
'
Range("D14:D33").Select
ActiveWorkbook.Worksheets("Kurszettel").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Kurszettel").Sort.SortFields.Add Key:=Range( _
"D14"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Kurszettel").Sort
.SetRange Range("D14:D33")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("E14:E33").Select
ActiveWorkbook.Worksheets("Kurszettel").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Kurszettel").Sort.SortFields.Add Key:=Range( _
"E14"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Kurszettel").Sort
.SetRange Range("E14:E33")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("F14:F33").Select
ActiveWorkbook.Worksheets("Kurszettel").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Kurszettel").Sort.SortFields.Add Key:=Range( _
"F14"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Kurszettel").Sort
.SetRange Range("F14:F33")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("G14:G33").Select
ActiveWorkbook.Worksheets("Kurszettel").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Kurszettel").Sort.SortFields.Add Key:=Range( _
"G14"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Kurszettel").Sort
.SetRange Range("G14:G33")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("H14:H33").Select
ActiveWorkbook.Worksheets("Kurszettel").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Kurszettel").Sort.SortFields.Add Key:=Range( _
"H14"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Kurszettel").Sort
.SetRange Range("H14:H33")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Vielen Dank im voraus für Eure Hilfe!
|