|  
                                            Hallo Leute, ich bin relativ neu in dem Thema Makros deshalb hier meine Frage:
Ich möchte das Makro welches in Tabelle1 steht nur aktivieren wenn Modul3 aktiviert wird und möchte nicht dass es jederzeit läuft.
Das Makro das ich meine markiert die Selbe Zelle in allen Arbeitsmappen (Tabelle1, Tabelle2....). Wie geht das?
Mit dem Befehl Call kann ich ja nur andere Module ansprechen..
Ich brauche sowas wie "only call this macro if...". Ich kann mein Makro nicht in ein Modul schreiben, da es Arbeitsblatt spezifisch ist.
Hier das Makro:
Sub Worksheet_SelectionChange(ByVal Target As Range)
    Set CurrWS = ActiveSheet
    For Each WS In ThisWorkbook.Worksheets
        WS.Activate
        WS.Range(Target.Address).Select
    Next
    CurrWS.Activate
End Sub
Mein Modul falls es jemand braucht:
Sub Tauschen()
Worksheets("Einsatzplan").Select
Dim s(1 To 4) As Variant
    With Selection
        If .Areas.Count = 2 And .Cells.Count = 2 Then
            s(1) = .Areas(1).Cells(1, 1).Value
            s(2) = .Areas(1).Range(Cells(1, 1), Cells(1, 1).Offset(0, 50)).Value
            s(3) = .Areas(2).Cells(1, 1).Value
            s(4) = .Areas(2).Range(Cells(1, 1), Cells(1.1).Offset(0, 50)).Value
            'tauschen
            .Areas(1).Cells(1, 1).Value = s(3)
            .Areas(1).Range(Cells(1, 1), Cells(1, 1).Offset(0, 3)).Value = s(4)
            .Areas(2).Cells(1, 1).Value = s(1)
            .Areas(2).Range(Cells(1, 1), Cells(1, 1).Offset(0, 3)).Value = s(2)
        End If
    End With
Worksheets("Urlaubsplan").Select
Dim r(5 To 8) As Variant
    With Selection
        If .Areas.Count = 2 And .Cells.Count = 2 Then
            r(5) = .Areas(1).Cells(1, 1).Value
            r(6) = .Areas(1).Range(Cells(1, 1), Cells(1, 1).Offset(0, 50)).Value
            r(7) = .Areas(2).Cells(1, 1).Value
            r(8) = .Areas(2).Range(Cells(1, 1), Cells(1.1).Offset(0, 3)).Value
            'tauschen
            .Areas(1).Cells(1, 1).Value = r(7)
            .Areas(1).Range(Cells(1, 1), Cells(1, 1).Offset(0, 50)).Value = r(8)
            .Areas(2).Cells(1, 1).Value = r(5)
            .Areas(2).Range(Cells(1, 1), Cells(1, 1).Offset(0, 50)).Value = r(6)
        End If
    End With
End Sub
     |