Aktives Blatt ansprechen
#1
Hallo ich habe ein Makro geschrieben.
Nun steht im ActiveWorkbook.Worksheets("2027"),
ich möchte aber egal in welchen Blatt ich bin 2024 oder 25 oder 26 das ich das gleiche Makro verwenden kann.
Was muss ich da ändern.

Code:
Sub Status_27()
'
' Status
'

'
    Application.CutCopyMode = False
    ActiveWorkbook.Worksheets("2027").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("2027").AutoFilter.Sort.SortFields.Add(Range( _
        "N4:N123"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color _
        = RGB(255, 255, 0)
    With ActiveWorkbook.Worksheets("2027").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    ActiveWorkbook.Worksheets("2027").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("2027").AutoFilter.Sort.SortFields.Add(Range( _
        "N4:N123"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color _
        = RGB(0, 176, 240)
    With ActiveWorkbook.Worksheets("2027").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
Sub KW_Start_27()
'
' KW_Start Makro
'

'
    ActiveWorkbook.Worksheets("2027").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("2027").AutoFilter.Sort.SortFields.Add2 Key:=Range( _
        "O5:O123"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("2027").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
Antworten Top
#2
Hallo,

es gibt das Objekt "ActiveSheet", also sollte (ungeprüft) gehen:

Code:
anstelle
ActiveWorkbook.Worksheets("2027")

nur

Activesheet

mfg
Antworten Top
#3
Hallo,

- Tastenkombination Strg h drücken
- bei Suchen nach: ActiveWorkbook.Worksheets("2027") eintragen
- bei Ersetzen durch: ActiveSheet eintragen
- Alle Ersetzen anklicken

Gruß, Uwe
Antworten Top
#4
(05.10.2024, 14:22)Franke schrieb: ich möchte aber egal in welchen Blatt ich bin 2024 oder 25 oder 26 das ich das gleiche Makro verwenden kann.

Moin!
Dann musst Du halt statt
ActiveWorkbook.Worksheets("2027")
einfach ActiveSheet nehmen.
(wobei auch das überflüssig ist, denn Code bezieht sich ohne gesonderten Bezug immer auf das aktive Blatt)

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)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Klaus-Dieter
Antworten Top
#5
Vielen Dank an alle für die schnelle Antwort.
Antworten Top
#6
Hallo

Ohne den Code testen zu können würde ich den Code eventuell so schreiben.
Code:
Sub CombinedSort()
    On Error GoTo ErrorHandler
    Dim ws As Worksheet
    Const STATUS_RANGE As String = "N4:N123"
    Const KW_START_RANGE As String = "O5:O123"
    Enum SortColors
        Yellow = RGB(255, 255, 0)
        Blue = RGB(0, 176, 240)
    End Enum
    Set ws = ActiveSheet
    Application.CutCopyMode = False
    With ws.AutoFilter.Sort
        .SortFields.Clear
        Call AddSortField(ws, STATUS_RANGE, xlSortOnCellColor, SortColors.Yellow)
        Call AddSortField(ws, STATUS_RANGE, xlSortOnCellColor, SortColors.Blue)
        Call AddSortField(ws, KW_START_RANGE, xlSortOnValues, xlAscending)
    End With
    Exit Sub
ErrorHandler:
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description, vbExclamation
End Sub

Sub AddSortField(ws As Worksheet, rng As String, sortOn As XlSortOn, sortOrder As Variant)
    With ws.AutoFilter.Sort
        .SortFields.Clear
        .SortFields.Add ws.Range(rng), sortOn, sortOrder, , xlSortNormal
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
Viele Grüße
PIVPQ
Antworten Top


Gehe zu:


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