Thema Datum  Von Nutzer Rating
Antwort
01.10.2019 10:45:48 Modul11
NotSolved
01.10.2019 10:52:07 UweD
NotSolved
01.10.2019 10:54:52 Gast76090
NotSolved
Blau Makro in spezifischer Arbeitsmappe nur ansprechen wenn Modul ausgelöst wird
01.10.2019 22:09:46 Gast73676
NotSolved
01.10.2019 11:07:45 Modul11
NotSolved
01.10.2019 11:16:10 Gast65047
NotSolved
01.10.2019 11:45:42 Modul11
NotSolved

Ansicht des Beitrags:
Von:
Gast73676
Datum:
01.10.2019 22:09:46
Views:
509
Rating: Antwort:
  Ja
Thema:
Makro in spezifischer Arbeitsmappe nur ansprechen wenn Modul ausgelöst wird

Hallo,

UweD hat dir die Antwort bereits geschrieben. Allerdings dürfte das Makro in Tabelle1 dann auch ausgelöst werden, wenn du das Tag in eine Zelle schreibst. Ich würde hier eher über eine globale Variable gehen. Ohne getestet zu haben könnte das Ganze dann etwa so aussehen:

Code im Modul3:

Public Modulstart As Boolean
Sub Tauschen()
  Modulstart = True
  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
  Modulstart = False
End Sub

Code in Tabelle1

Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Modulstart = True Then
    Set CurrWS = ActiveSheet
    For Each WS In ThisWorkbook.Worksheets
      WS.Activate
      WS.Range(Target.Address).Select
    Next
    CurrWS.Activate
  End If
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
01.10.2019 10:45:48 Modul11
NotSolved
01.10.2019 10:52:07 UweD
NotSolved
01.10.2019 10:54:52 Gast76090
NotSolved
Blau Makro in spezifischer Arbeitsmappe nur ansprechen wenn Modul ausgelöst wird
01.10.2019 22:09:46 Gast73676
NotSolved
01.10.2019 11:07:45 Modul11
NotSolved
01.10.2019 11:16:10 Gast65047
NotSolved
01.10.2019 11:45:42 Modul11
NotSolved