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.

Makro ausführen bei Aktivieren eines anderen Tabellenblattes
#1
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
Antworten Top
#2
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
Antworten Top


Gehe zu:


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