Moin,
ich habe mir eine Sortierfunktionzusammengebastelt, das Problem ist nun, er macht es nur für das aktivierte Tabellenblatt. Ich möchte dieses aber auf zwei Tabellenblätter anwenden, die zum Zeitpunkt des Auslösens nicht aktiviert sind.
Ich bin VBA-Novize und meine Idee wäre es mit With zu machen, das funktioniert aber nicht.
Ich habe mal den Code angehängt. Es sollen die Tabellenblätter "EBewertung" und "Risikoauswertung" angesprochen werden.
Danke im Voraus.
James
Application.ScreenUpdating = True
lLetzte = Range("G65536").End(xlUp).Row
For lZeile = 1 To 6
Columns("G").Insert Shift:=xlToRight
Next lZeile
Columns("G:L").NumberFormat = "@"
Range("G2:L" & lLetzte) = 0
For lZeile = 1 To lLetzte
aTemp = Split(Cells(lZeile, 13), ".") ' die 'alte' Spalte G ist jetzt M
For iIndx = 0 To UBound(aTemp)
If IsNumeric(aTemp(iIndx)) And _
Len(aTemp(iIndx)) < 2 Then
Cells(lZeile, 7 + iIndx) = "00" & aTemp(iIndx)
ElseIf Len(aTemp(iIndx)) < 3 Then
Cells(lZeile, 7 + iIndx) = "0" & aTemp(iIndx)
Else
Cells(lZeile, 7 + iIndx) = aTemp(iIndx)
End If
Next iIndx
Next lZeile
' erstmal nach den Spalten J - L sortieren
Range("G2:Z" & lLetzte).Sort _
Key1:=Range("J2"), Order1:=xlAscending, _
Key2:=Range("K2"), Order2:=xlAscending, _
Key3:=Range("L2"), Order3:=xlAscending, _
Header:=xlNo, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
' dann nach den Spalten G - I sortieren
Range("G2:Z" & lLetzte).Sort _
Key1:=Range("G2"), Order1:=xlAscending, _
Key2:=Range("H2"), Order2:=xlAscending, _
Key3:=Range("I2"), Order3:=xlAscending, _
Header:=xlNo, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
' dann die eingefügten Spalten löschen
Columns("G:L").Delete Shift:=xlToLeft
Application.ScreenUpdating = True
|