Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1496to1500
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Aktiviertes Sheet in Sheet.Deactive Event tracken

Aktiviertes Sheet in Sheet.Deactive Event tracken
08.06.2016 19:47:49
Peter
Hallo zusammen,
ich habe schon recherchiert aber nichts gefunden:
Kann man innerhalb eines Sheet.Deactive Events tracken, wohin der Nutzer geklickt hat?
Hintergrund der Frage ist folgende:
Ich habe ein Sheet, in dem ein Datumswert steht.
Falls das Systemdatum größer dem Datum ist und der User dieses Sheet verlässt, möchte ich kurz in jenes Sheet zurückspringen und via MSGBOX fragen lassen, ob der User das Datum ändern möchte.
Falls nein, soll das Makro in das Sheet wechseln, in das der User wechseln wollte (und damit das Sheet.Deactivate Event getriggert hat)...
Hoffe, das macht Sinn...
Danke und Grüße!
Peter

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aktiviertes Sheet in Sheet.Deactive Event tracken
09.06.2016 04:31:07
Mullit
Hallo,
klar geht, mit einer Ereignisprozedur bspw. so:
' ********************************************************************** 
' Modul: DieseArbeitsmappe Typ: Klassenmodul der Arbeitsmappe 
' ********************************************************************** 

Option Explicit

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) '// Tabelle1 und Zelle ggf anpassen... 
If Sh Is Tabelle1 Then _
  If CLng(Date) > CLng(Sh.Cells(1, 1).Value) Then _
    If MsgBox(Prompt:="Möchten Sie den Datwert ändern?", _
       Buttons:=vbYesNo + vbQuestion, Title:="Datwert_ändern") = vbYes Then _
        Call Sh.Activate: Call Sh.Cells(1, 1).Select
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 14

Gruß, Mullit

Anzeige
AW: Aktiviertes Sheet in Sheet.Deactive Event tracken
09.06.2016 08:33:57
Peter
Hallo Mullit, danke erstmal für deine schnelle Antwort!
Ich habe unpräzise formuliert denke ich -also mein Problem ist folgendes:
In Sheet "Tag1" steht in Zelle A3 ein Datum.
Der User ist nun in Sheet "Tag1" und will nun zu Sheet "Tag2" wechseln, d.h. er klickt darauf.
Wenn das Systemdatum größer dem Datumswert ist, will ich den User nun kurz in "Tag 1" halten, um ihn prüfen zu lassen, ob das so seine Richtigkeit hat.
Das geht bislang problemlos mit dem "Deactivate"-Event.
Hier kommt nun mein Problem:
Falls er das für richtig befindet, will ich den User wieder dahin schicken, wo er eigentlich hinwollte, nämlich zu "Tag2" im Beispiel (könnte aber auch ein anderes Sheet sein). Diese Info ist aber "verloren", wenn ich das Deactivate Event auf "Tag 1" habe und ihn dort "festhalte", richtig?
Grüße!

Anzeige
AW: Aktiviertes Sheet in Sheet.Deactive Event tracken
09.06.2016 12:48:26
Mullit
Hallo Peter,
ah ja, fiel mir hinterher noch auf, Du willst erst im Ausgangs-Sheet bleiben und dann bei Bedarf wechseln, dann eher so in die Richtung:
' ********************************************************************** 
' Modul: DieseArbeitsmappe Typ: Klassenmodul der Arbeitsmappe 
' ********************************************************************** 

Option Explicit

Private mwksDeactivate As Worksheet

Private Sub Workbook_SheetActivate(ByVal Sh As Object) '// Codenamen Tabelle1 ggf anpassen... 
Static sblnActivate As Boolean
If Not (Sh Is Tabelle1 Or sblnActivate) Then
    If mwksDeactivate Is Sheet1 Then
      With mwksDeactivate
            If CLng(Date) > CLng(.Cells(3, 1).Value) Then
              Call .Activate
              If MsgBox(Prompt:="Möchten Sie den Datwert in  '" & .Name & "'  ändern?", _
                 Buttons:=vbYesNo + vbQuestion, Title:="Datwert_ändern") = vbYes Then
                 Call .Cells(3, 1).Select
              Else
                 sblnActivate = True
                 Call Sh.Activate
              End If
            End If
      End With
    End If
    Set mwksDeactivate = Nothing
    sblnActivate = False
End If
End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) '// Codenamen Tabelle1 ggf anpassen... 
If Sh Is Tabelle1 Then Set mwksDeactivate = Sh
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 14

Gruß, Mullit

Anzeige
AW: Aktiviertes Sheet in Sheet.Deactive Event tracken
09.06.2016 12:58:45
Mullit
Hallo,
...uhh, da war noch eine falsche Tabellenbez. enthalten und vielleicht nochmal der Hinweis, für den Codenamen Tabelle1 müsstest Du dann den Codenamen Deiner Tabelle "Tag1" einsetzen...
' ********************************************************************** 
' Modul: DieseArbeitsmappe Typ: Klassenmodul der Arbeitsmappe 
' ********************************************************************** 

Option Explicit

Private mwksDeactivate As Worksheet

Private Sub Workbook_SheetActivate(ByVal Sh As Object) '// Codenamen Tabelle1 ggf anpassen... 
Static sblnActivate As Boolean
If Not (Sh Is Tabelle1 Or sblnActivate) Then
    If mwksDeactivate Is Tabelle1 Then
      With mwksDeactivate
            If CLng(Date) > CLng(.Cells(3, 1).Value) Then
              Call .Activate
              If MsgBox(Prompt:="Möchten Sie den Datwert in  '" & .Name & "'  ändern?", _
                 Buttons:=vbYesNo + vbQuestion, Title:="Datwert_ändern") = vbYes Then
                 Call .Cells(3, 1).Select
              Else
                 sblnActivate = True
                 Call Sh.Activate
              End If
            End If
      End With
    End If
    Set mwksDeactivate = Nothing
    sblnActivate = False
End If
End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) '// Codenamen Tabelle1 ggf anpassen... 
If Sh Is Tabelle1 Then Set mwksDeactivate = Sh
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 14

Gruß, Mullit

Anzeige
AW: Aktiviertes Sheet in Sheet.Deactive Event tracken
09.06.2016 13:19:32
Peter
Hallo Mullit,
ich habe das Makro einmal in das eigentliche Tabellenblatt (unter den Excel Objekten in VBA als Sheet21 aka "Tag1" gelistet) und einmal als Modul einkopiert und "Tabelle1" im Makro zu "Sheet21" geändert.
Aber es passiert nichts.
Mache ich einen offensichtlichen Fehler?
Sorry für das Generve, bin absoluter VBA Anfänger...

AW: Aktiviertes Sheet in Sheet.Deactive Event tracken
09.06.2016 15:13:44
Mullit
Hallo,
ah kein Problem für den Anfang auch nicht ganz ohne, der gesamte Code kommt in das Modul Deiner Arbeitsmappe, das hat im Projektexplorer die Bezeichnung 'DieseArbeitsmappe' gibt auch nur eines davon, aber ich lad Dir mal nen Bsp hoch:
https://www.herber.de/bbs/user/106118.xlsm
Gruß, Mullit

Anzeige
AW: Aktiviertes Sheet in Sheet.Deactive Event tracken
09.06.2016 16:39:11
Peter
Hallo Mullit, wow, genau das brauche ich - vielen vielen Dank!!!
PS: Den ersten Code habe ich nur gelesen aber konnte sehen, dass er aufgrund meiner zuerst unklaren Beschreibung nicht das tat, worauf ich hinaus wollte; konnte die Lösung aber selbst nicht herbeiführen.
(-: Grüße, ein happy Peter!

AW: Aktiviertes Sheet in Sheet.Deactive Event tracken
09.06.2016 16:43:18
Mullit
Hallo Peter,
...ah alles klar, freut mich...
Gruß, Mullit

AW: Aktiviertes Sheet in Sheet.Deactive Event tracken
09.06.2016 15:58:52
Mullit
Hallo,
da fällt mir gerade auf, wie hast Du denn meinen ersten Code getestet, wenn Du die falschen Module gewählt hast...?..aber ok...
Gruß, Mullit

90 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige