Entschuldigung, ich meinte Button.
Habe es jetzt gelöst in dem ich folgenden Code in jede Arbeitsmappe getan hat, der ein ansprechen der immer gleichen Zelle für jedes Arbeitsblatt auslöst.
Allerdings bugt Excel jetzt ziemlich und vll. hat jemand eine Lösung wie ich die beiden Codes ebenfalls nur bei aktivieren des Buttons auslösen kann obwohl sie nicht im Modul stehen?
Code in den Arbeitsblättern:
Private 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
Code im Modul:
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
PS: Den Code-Button hier finde ich leider nicht genau so wenig wie den Text-Editor...
|