Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Sortieren mit VBA
#1
Guten Nachmittag
Habe eine Tanelle in welcher in der Spalte B der Name und in Spalte D die Kategorie angeführt ist. Ab spalte E bis Spalte T stehen Berechnungen (z.B. =SUMMEWENN(Zusammenfassung!$B$6:$B$306;Liste!B8;Zusammenfassung!$L$6:$L$306)
=SUMMEWENN(Zusammenfassung!$B$6:$B$306;Liste!B9;Zusammenfassung!$L$6:$L$306)
=SUMMEWENN(Zusammenfassung!$B$6:$B$306;Liste!B10;Zusammenfassung!$L$6:$L$306)
....
=SUMMEWENN(Zusammenfassung!$B$6:$B$306;Liste!B306;Zusammenfassung!$L$6:$L$306)

Mit dem untenangeführten Kode Sortiere ich die Daten ab Zeile 9
 
1. nach Spalte D (Kategorie) und
2. nach Spalte B (Name)

Leider werden die Formeln ab Spalte E nicht mitsortieret und die Formeln haben nach der Sortierung falsche Bezüge 

.... Zeile 8 steht  =SUMMEWENN(Zusammenfassung!$B$6:$B$306;Liste!B10;Zusammenfassung!$L$6:$L$306) 
.... Zeile 9 steht  =SUMMEWENN(Zusammenfassung!$B$6:$B$306;Liste!B23;Zusammenfassung!$L$6:$L$306)

usw.
Hat jemand eine Idee wie ich diesen Fehler beheben könnte?


Danke

Sub SortierungNeu()
Dim selectedRange As Range
Application.ScreenUpdating = False

ActiveWorkbook.Sheets("Liste").Activate

Set selectedRange = Application.InputBox("Den Bereich für die Sortierung markieren.", "Sortierung", Type:=8)

    If Not selectedRange Is Nothing Then
        selectedRange.Select
    End If

' Im Beispiel wurde der A1 bis T12 als Bereich über Application.InputBox festelegt
  'Range(be_sortierung).Select
    ActiveWorkbook.Worksheets("Liste").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Liste").Sort.SortFields.Add2 Key:=Range("D8:D12") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal            'Sortierung nach Kategorie
    ActiveWorkbook.Worksheets("Liste").Sort.SortFields.Add2 Key:=Range("B8:B12") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal             'Sortierung nach aName
    With ActiveWorkbook.Worksheets("Liste").Sort
        .SetRange selectedRange
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("A8").Select
   
    Call NumerierungNeu
    Application.ScreenUpdating = True
End Sub
Antworten Top
#2
Wo sind die Code Tags ?
Wo ist NumerierungNeu ?
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#3
Hallo

mir fällt auf, das im Code nicht geprüft wird ob die Range Eingabe für A1 bis T12 in Ordnung ist!!
Was ist mit Aussprung bei İs Nothing?. Ich würde den Code so aendern.

Set selectedRange = Application.InputBox("Den Bereich für die Sortierung markieren.", "Sortierung", Type:=8)
If selectedRange Is Nothing Then Exit Sub
Adr = selectedRange.Address(0, 0)
If InStr(Left(Adr, 1), "A") = 0 Or InStr(Adr, ":T") = 0 Then _
MsgBox Adr & " Falscher Sortierbereich": Exit Sub

mfg Gast 123
Antworten Top


Gehe zu:


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