Live-Forum - Die aktuellen Beiträge
Datum
Titel
18.04.2024 18:04:29
18.04.2024 16:33:24
Anzeige
Archiv - Navigation
1680to1684
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

Excel-Fenster im Hintergrund

Excel-Fenster im Hintergrund
11.03.2019 09:52:39
Marcus
Hallo liebe Gemeinde.
Mir stellt sich ein Problem, für welches ich keine Lösung habe.
Und zwar hat ein Bediener auf seinem PC mehrere verschiedene Excel-Dateien geöffnet und bearbeitet diese von Zeit zu Zeit. Der Bediener schließt diese Excel-Dateien auch gerne wieder um sie später wieder zu öffnen.
Und da ist auch schon mein Problem: Ich habe auf dem PC des Bedieners eine Excel abgelegt, die minütlich ein Script ausführt und Daten sammelt. Diese habe ich mit Blattschutz und VBA-Schutz versehen und auch das screenupdating deaktiviert.
Nun passiert es aber immer wieder, dass der Bediener beim schließen SEINER Tabellen auch immer meine schließt.
Meine Frage wäre, kann ich meine Tabelle irgendwie vor dem schließen schützen? Verstecken?
Gruß Marcus

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel-Fenster im Hintergrund
11.03.2019 09:59:46
Nepumuk
Hallo Marcus,
speichere deine Mappe als Addin. Dann bleibt sie so lange offen wie Excel selbst geöffnet bleibt.
Gruß
Nepumuk
AW: Excel-Fenster im Hintergrund
11.03.2019 10:05:32
Marcus
Das ist ja das Problem. Ich kann weder überwachen, ob der Bediener nur die Arbeitsmappen schließt oder das ganze Fenster. Da ich aber keine Daten von meiner Tabelle erhalte, gehe ich davon aus, dass er einfach das rote "X" bemüht und damit auch Excel selbst beendet.
AW: Excel-Fenster im Hintergrund
11.03.2019 10:13:58
Nepumuk
Hallo Marcus,
in einer Klasse der Application kannst du doch überwachen ob nur eine Mappe geschlossen wird oder alle. Bzw. wenn das Addin geschlossen wird, dann kannst du davon ausgehen dass der User Excel schließt.
Aber was nützt die diese Information?
Wenn du ein Programm dauerhaft vom hochfahren des PC's bis zum runterfahren offen halten willst, dann ist Excel dazu nur bedingt geeignet.
Gruß
Nepumuk
Anzeige
AW: Excel-Fenster im Hintergrund
11.03.2019 10:24:28
Marcus
Entschuldige, da hab ich mich falsch ausgedrückt. Mit "Da ich aber keine Daten von meiner Tabelle erhalte..." meine ich, dass ich an meinem Arbeitsplatz die Daten sehen kann, die meine Excel auf dem PC des Bedieners sendet. Kommen keine Daten mehr, hat er wohl das "X" geklickt.
Das dazu Excel wohl nur bedingt nutzbar ist, kann schon möglich sein. Eine proprietäre Software für mein Unterfangen gibt es nicht.
Da man bei Excel ja mehrere Mappen in einem Fenster, aber auch mehrere Mappen in mehreren Fenstern öffnen kann, hatte ich angenommen, dass es möglich ist, nur "mein" Fenster zu verstecken bzw. zu sperren.
Anzeige
AW: Excel-Fenster im Hintergrund
12.03.2019 11:56:32
Daniel
Hallo Marcus,
meine Nachricht wurde irgendwie nicht übernommen, neuer Versuch. Hast du es mal mit sowas im Arbeitsmappen Code versucht?
Private Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox "Schließen nicht möglich"
Cancel = True
End Sub
Gruß
Daniel
AW: Excel-Fenster im Hintergrund
14.03.2019 07:02:23
Marcus
Vielen Dank Daniel,
genau so habe ich es gelöst.
Das gute daran ist, alle anderen Excel-Fenster können geschlossen werden, auch mit Rechtsklick auf die Taskleiste.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Das OnTime-Ereignis beenden
'# Auskommentiert, da sonst bei einem Versuch die Excel zu schließen,
'# der Timer beendet wird, die Excel aber offen bleibt
'    Call Ende
'die Nachfrage zum speichern verhindern, trotzdem speichern
ThisWorkbook.Save
ThisWorkbook.Saved = True
'Abfrage, ob die Excel wirklich geschlossen werden soll
Cancel = Not blnBeendenErlaubt
End Sub
Und das noch in einer Form:
Private Sub btnOK_Click()
If tbPasswort.value = "bernd" Then
blnBeendenErlaubt = True
If Application.Workbooks.Count = 1 Then
Application.Quit
Unload Me
Else
ThisWorkbook.Close
End If
Else
blnBeendenErlaubt = False
Unload Me
End If
End Sub
Jetzt ist mir nur noch eins aufgefallen.
Ich hole mit meiner Excel Daten aus einer .csv auf einem anderen Rechner. Ist dieser Rechner nicht erreichbar, verlängere ich nur den Intervall, wann geschaut wird.
    Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Select Case False
Case fso.FileExists(strPath)
Debug.Print Time & " - Meldung von Import - Derzeit keine Hofliste verfü _
gbar. PC ausgeschaltet?"
'neue Zeit festlegen, solange die Hofliste nicht verfügbar ist
dtNextTime = Now + TimeSerial(0, 5, 0)
Application.OnTime dtNextTime, "ZeitstempelAktualisieren", , True
Application.StatusBar = "Derzeit keine Hofliste verfügbar.  _
Aktualisierung wieder um " & Time + TimeSerial(0, 5, 0)
Exit Sub
End Select
So, und genau dann, wenn der Pfad nicht erreichbar ist, dann wird "Workbook_BeforeClose" nicht ausgeführt. Gibt es dafür eine Regel?
Anzeige
AW: Excel-Fenster im Hintergrund
14.03.2019 09:03:27
Daniel
Schöne Lösung!
Ich kann aus deinem Code unten leider nicht ersehen, wann und wie die Mappe geschlossen und das _BeforeClose ignoriert wird, bin ich etwas überfragt. Ebenso ist mir nicht klar, zu welcher Form btnOK_Click gehört und wann diese aufgerufen wird. Aber vielleicht kann einer der Experten hier mehr zur Technik dahinter sagen?
Gruß
Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige