Clever-Excel-Forum

Normale Version: Makro ausführen bei Aktivieren eines anderen Tabellenblattes
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Liebe Leute,

ich habe im Tabellenblatt "Datenbasis" ein Makro erstellt (mit aufzeichnen), der Code dafür steht unten und funktioniert auch.

Ich möchte aber, dass das Makro im Tabellenblattt Datenbasis immer dann ausgeführt wird, wenn ein anderes Tabellenblatt namens "Auswertungen" aktiviert wird.

Hat jemand von euch eine Idee, wie ich dafür den Code unten anpassen müsste Huh

Herzlichen Dank im Voraus!

 

Sub Makro3()
    With ThisWorkbook.Worksheets("Datenbasis").ActiveCell.FormulaR1C1 = "=IF(FX!RC[4]="""","""",FX!RC[4])"
    Range("A2").Select
    Selection.AutoFill Destination:=Range("A2:A20000"), Type:=xlFillDefault
    Range("A2:A20000").Select
    ActiveSheet.Range("$A$1:$A$20000").RemoveDuplicates Columns:=1, Header:= _
        xlYes
    ActiveWorkbook.Worksheets("Datenbasis").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Datenbasis").Sort.SortFields.Add Key:= _
        Range("A2:A76"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("Datenbasis").Sort
        .SetRange Range("A1:A76")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
Hallo,

hier mal dein Makro noch etwas eingekürzt. Wobei sich mir die Frage stellt, ob du tatsächlich die Formeln bis zur Zeile 20000 brauchst.

Code:
Sub Makro3()
With ThisWorkbook.Worksheets("Datenbasis")
   .Range("A2:A20000").FormulaR1C1 = "=IF(FX!RC[4]="""","""",FX!RC[4])"
   .Columns("A").RemoveDuplicates Columns:=1, Header:=xlYes
   .Sort.SortFields.Clear
   .Sort.SortFields.Add Key:=.Range("A2:A76"), SortOn:=xlSortOnValues, _
   Order:=xlAscending, DataOption:=xlSortNormal
   With .Sort
       .SetRange Worksheets("Datenbasis").Range("A1:A76")
       .Header = xlYes
       .MatchCase = False
       .Orientation = xlTopToBottom
       .Apply
   End With
End With
End Sub


Wenn das Makro gestartet werden soll, sobald du auf das Blatt "Auswertungen" wechselst, dann so:
-Rechtsklick auf den Tabellenblattreiter vom Blatt "Auswertung"
-Code anzeigen

-im Code-Editor im rechten Fenster, oben links im Pulldown Worksheet auswählen
im Code-Editor im rechten Fenster, oben rechts im Pulldown Activate auswählen

-ins entsprechende Activate-Ereignis folgende Codezeile einfügen

Code:
Call Makro3


Gruß Werner