Anzeige
Archiv - Navigation
1932to1936
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

automatisches Öffnen einer Datei

automatisches Öffnen einer Datei
30.06.2023 14:42:43
Christian

Hallo,

mal eine kurze Frage. Es gibt ja die Möglichkeit, dass eine Excel Datei bei Windows Start geöffnet wird, indem ich sie im entsprechenden Ordner abspeichere.

Aber gibt es auch eine Möglichkeit, dass dies nur beim ersten starten des Laptops am Tag passiert und bei weiteren Starts oder Neustarts nicht mehr? Also so eine Art Prüfung, wann das letzte Öffnen der Datei war und nur Öffnen wenn es am Vortag oder früher war?

Hat da jemand eine Idee?

Danke
Christian

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: automatisches Öffnen einer Datei
30.06.2023 14:50:14
Yal
Hallo Christian,

Frage 1: ja, siehe https://www.google.com/search?q=datei+beim+windows+start+automatisch+%C3%B6ffnen Diese Frage ist nicht Excel-spezifisch.
Frage 2: nein. Aber wer startet sein Rechner mehrmals am Tag? höchstens wird er wieder "aufgeweckt", aber das ist kein Neustart. Wenn über Nacht der Rechner nur in "Schlummer"-Modus versetzt ist, funktioniert lösung von Pkt 1 auch nicht.

VG
Yal


AW: automatisches Öffnen einer Datei
30.06.2023 14:54:00
Christian
Hallo Yal,

das erste war eigentlich nicht als Frage gemeint, sondern nur als Erklärung, um was es mir geht. Ich nutze den Autostart von Windows seit Jahren.

Und zu Frage 2, ich z.b. Ich habe Homeoffice und viele Außentermine, da muss der Rechner nicht permanent an sein, kostet nur Strom. Aber was halt ist ich habe eine Excel Dateien, die brauche ich nur morgens zum Arbeitsbeginn.

Gruß
Christian


Anzeige
aber danke für die Antwort owT
30.06.2023 14:54:33
Christian
.


AW: automatisches Öffnen einer Datei
30.06.2023 17:06:21
Oberschlumpf
Hi Christian,

ich verfolge (mit anderem Hintergrund) das gleiche Ziel, und nutze diese Lösung:
Der folgende Code gehört in eine VBS-DATEI ! (eine Textdatei mit Dateiendung = .vbs)

Und die vbs-Datei (oder eine Verknüpfung zur vbs-Datei) wird im Autostart-Ordner gespeichert.

...jetzt der Code für die vbs-Datei...(genau so, wie er folgt, bedeutet: beginnt nicht mit Sub irgdwas() und endet auch nicht mit End Sub)

dim FSO
dim MyFile
dim cmd
dim WSH
dim Datum

Set FSO = CreateObject("Scripting.FileSystemObject")
set WSH = CreateObject("WScript.Shell")

If not FSO.FileExists("D:\Herber\1xoffen.txt") Then
		Set MyFile = FSO.CreateTextFile("D:\Herber\1xoffen.txt", TRUE) 'Pfad/Dateiname anpassen
		MyFile.Close
		Set MyFile = FSO.OpenTextFile("D:\Herber\1xoffen.txt", 8) 'Pfad/Dateiname anpassen
		MyFile.WriteLine (date)
		MyFile.Close
		cmd = chr(34) & "DEIN PFAD\DEINE EXCELDATEI.xlsx" & chr(34)  'Pfad/Dateiname anpassen
                WSH.Run cmd
	else
		Set MyFile = fso.OpenTextFile("D:\Herber\1xoffen.txt", 1) 'Pfad/Dateiname anpassen
		datum = MyFile.ReadLine
		MyFile.Close
			If cdate(datum) > date then
				FSO.DeleteFile "D:\Herber\1xoffen.txt", True 'Pfad/Dateiname anpassen
				Set MyFile = FSO.CreateTextFile("D:\Herber\1xoffen.txt", TRUE) 'Pfad/Dateiname anpassen
				MyFile.Close
				Set MyFile = FSO.OpenTextFile("D:\Herber\1xoffen.txt", 8) 'Pfad/Dateiname anpassen
				MyFile.WriteLine (date)
				MyFile.Close
				cmd = chr(34) & "DEIN PFAD\DEINE EXCELDATEI.xlsx" & chr(34) 'Pfad/Dateiname anpassen
		                WSH.Run cmd
			end if
end if
(Versuch einer ) Erklärung:

1. alle SET Zeilen bereiten für den/die nächsten Schritt/e im Code vor
2. mit If not wird geprüft, ob im angegebenen Verzeichnis eine bestimmte txt-Datei vorhanden ist
- NEIN, DANN wird...
...zuerst die zuvor gesuchte txt-Datei erstellt
...in der txt-Datei wird das aktuelle Datum gespeichert
...DEINE EXCELDATEI wird geöffnet
- JA, DANN wird...
...das in txt-Datei gespeicherte Datum ausgelesen
...ist das ausgelesene Datum das Gleiche wie aktuelles Datum?
- JA, DANN passiert nix weiter, weil DEINE EXCELDATEI heute schon einmal geöffnet wurde
- NEIN, DANN wird...
...die zuvor gespeicherte txt-Datei - mit anderem Datum - gelöscht
...eine neue txt-Datei wird erstellt
...das aktuelle Datum wird in txt-Datei geschrieben
...DEINE EXCELDATEI wird geöffnet

Hilfts?

Ciao
Thorsten


Anzeige
Warum so kompliziert?
30.06.2023 17:51:38
Christian
Hallo Thorsten,

im Prinzip verfolgt das ja einen ähnlichen Gedanken, den ich hatte. Aber warum nicht einfach ein Makro, dass beim Schließen das aktuelle Datum in eine Zelle schreibt und ein anderes Makro, dass beim Öffnen dieses Datum mit dem aktuellen Datum vergleicht? Und wenn identisch wird die Datei direkt wieder geschlossen (und dabei das Datum aktualisiert). Mir zumindest würde das bereits reichen.

Aber ich werde dann mal jetzt dein Makro testen.

Gruß
Christian


AW: Warum so kompliziert?
30.06.2023 18:21:46
Oberschlumpf
Hi Christian,

ich löste deine Frage..ähh..."so kompliziert", weil ich ja, wie erwähnt
- die Lösung schon hatte
- aber mit einem anderen Hintergrund, bei dem bei mir Excel gar nicht zum Einsatz kommt

Aber natürlich hast du recht...und damit hast du die Lösung doch schon:

- öffne deine Excel-datei
- überprüf, ob Wunschzelle einen Wert enthält
...wenn Ja, dann Datei wieder schließen
...wenn nein, Wert in Wunschzelle schreiben und zur Wunschtabelle wechseln

Ciao
Thorsten


Anzeige
AW: Warum so kompliziert?
30.06.2023 18:29:21
Christian
Hallo Thorsten,

die frage warum so kompliziert habe ich gestellt, um zu klären ob ich mit meiner Idee auf dem Holzweg war... sorry war blöd ausgedrückt.

Ich habe es jetzt mit dem Script unten probiert. Es öffnen sich jedesmal jetzt beim Hochfahren oder Neustarten die Dateien RGB.xlsm sowie offen.txt mit dem heutigen Datum, automatisch geschlossen wird keine der beiden.

Öffne ich die Scriptdatei mit Doppelklick öffnet sich gar nichts. Fehlermeldungen kommen keine.
Habe ich etwas falsch gemacht?

 
 dim FSO
 dim MyFile
 dim cmd
 dim WSH
 dim Datum
 
 Set FSO = CreateObject("Scripting.FileSystemObject")
 set WSH = CreateObject("WScript.Shell")
 
 If not FSO.FileExists("C:\Users\chris\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\offen.txt") Then
 		Set MyFile = FSO.CreateTextFile("C:\Users\chris\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\offen.txt", TRUE) 'Pfad/Dateiname anpassen
 		MyFile.Close
 		Set MyFile = FSO.OpenTextFile("C:\Users\chris\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\offen.txt", 8) 'Pfad/Dateiname anpassen
 		MyFile.WriteLine (date)
 		MyFile.Close
 		cmd = chr(34) & "C:\Users\chris\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\RGB.xlsm" & chr(34)  'Pfad/Dateiname anpassen
                 WSH.Run cmd
 	else
 		Set MyFile = fso.OpenTextFile("C:\Users\chris\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\offen.txt", 1) 'Pfad/Dateiname anpassen
 		Datum = MyFile.ReadLine
 		MyFile.Close
 			If cdate(Datum) > date then
 				FSO.DeleteFile "C:\Users\chris\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\offen.txt", True 'Pfad/Dateiname anpassen
 				Set MyFile = FSO.CreateTextFile("C:\Users\chris\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\offen.txt", TRUE) 'Pfad/Dateiname anpassen
 				MyFile.Close
 				Set MyFile = FSO.OpenTextFile("C:\Users\chris\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\offen.txt", 8) 'Pfad/Dateiname anpassen
 				MyFile.WriteLine (date)
 				MyFile.Close
 				cmd = chr(34) & "C:\Users\chris\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\RGB.xlsm" & chr(34) 'Pfad/Dateiname anpassen
 		                WSH.Run cmd
 			end if
 end if
 	


Anzeige
AW: Warum so kompliziert?
30.06.2023 19:28:51
Oberschlumpf
Hi Christian,

du hast im Startup-Ordner nur die Scriptdatei gespeichert und die RGB.xlsm aus dem Startup-Ordner entfernt?

Einen anderen Fehler seh ich (noch) nicht, weil ja der VBS-Code bei mir funktioniert, und auch du scheinst die Änderungen bzgl Pfad + Dateien korrekt eingetragen zu haben.

Bei dir müsste die VBS-Datei auch funktionieren, weil ja bei "Direktstart der Datei" (Doppelklick) gar nix passiert, wie du schreibst - sobald die txt-Datei mit heutigem Datum gefunden wird - soll ja auch nix passieren.

Ciao
Thorsten


AW: Warum so kompliziert?
30.06.2023 19:38:36
Christian
Hallo Thorsten,

sorry aber was du schreibst kann ich nicht ganz nachvollziehen. ist das entfernen der RGB Datei eine Vermutung von dir dass das der Fehler sein könnte oder wolltest du mich erinnern, die Datei zu entfernen?

Jedenfalls liegen alle 3 Dateien im Startup Ordner, xlsm, vbs und txt.

Gruß
Christian


Anzeige
AW: Warum so kompliziert?
30.06.2023 20:03:22
Oberschlumpf
Hi Christian,

besonders der Teil "...und die RGB.xlsm aus dem Startup-Ordner entfernt?" war eine Frage an dich, ob du denn die Excel-DAtei aus dem Starup entfernt hast - was ja erforderlich ist, da ja nun alles durch die vbs-Datei gesteuert wird.

Ciao
Thorsten


AW: Warum so kompliziert?
30.06.2023 20:26:18
Christian
ok, das wusste ich nicht. Aber muss ich dann nicht auch einen anderen Pfad angeben für die RGB?


Testergebnis
30.06.2023 20:38:42
Christian
Hallo Thorsten

hab jetzt die RGB woanders hingetan und den Pfad im Script geändert.

Beim ersten Neustart wurde die RGB noch gestartet, ich vermute mal weil noch keine Textdatei mit Datum erstellt wurde. Bei weiteren Neustart Versuchen hat es dann geklappt.

Habe dann testweise das Windows Datum auf den 1.7. geändert, dann hat sich die Datei auch wieder geöffnet.

Das einzige kleine, was noch wäre, die Textdatei mit dem Datum die bleibt geöffnet und ich muss sie von Hand schließen. Lässt sich das noch ändern?

Danke
Christian


Anzeige
AW: Testergebnis
01.07.2023 06:45:27
Oberschlumpf
Hi Christian,

da der vbs-Code eigtl immer (bei mir) tut, was er soll, ich nicht an deinem Computer sitze und somit nicht sehe, was du anders machst, hier dann doch die "einfache Version"

https://www.herber.de/bbs/user/159779.xlsm

Hier wird nun, wie du es selbst schon, zumindest theoretisch, "programmiert" hattest, in Tabelle1, in Zelle A1 das dort eingetragene Datum überprüft
- enthält Zelle A1 keinen Eintrag, wird in A1 das aktuelle Datum geshcrieben, Datei geöffnet

nach Speichern/Schließen/erneutes Öffnen der Datei steht nun in Zelle A1 das aktuelle Datum = Datei wird sofort, ohne speichern wieder geschlossen.

Hilfts nun?

Ciao
Thorsten


Anzeige
kleine Korrektur
01.07.2023 06:47:02
Oberschlumpf
- enthält Zelle A1 keinen Eintrag oder nicht das aktuelle Datum, wird in A1 das aktuelle Datum geschrieben, Datei bleibt geöffnet


jetzt verstehe ich die Excel Welt gar nicht mehr
01.07.2023 12:03:27
Christian
https://www.herber.de/bbs/user/159783.xlsm

ich habe jetzt zuerst dieses Makro benutzt

Option Explicit

Private Sub Workbook_Open()

    With Sheets(1).Range("F1") 'Tabellenblattindex, die 1 in (), anpassen, wenn Kontrolldatum in anderem Tabellenblatt stehen soll; Zelle A1 anpassen, wenn Kontrolldatum in anderer Zelle stehen soll
        If .Value > Date Then
                .Range("D1").Interior.Color = RGB(Range("B1").Value, Range("B2").Value, Range("B3").Value)
                .Range("F1").Value = Date
            Else
                ThisWorkbook.Close False
        End If
    End With
    
End Sub
und wie du siehst noch eine Zeile eingefügt, damit auch weiterhin das gemacht wird, was schon vorher beim Öffnen der Datei gemacht wurde (und auch vorher funktioniert hat, daher ist das bislang bei dieser Anfrage nicht zur Sprache gekommen)- Aber da steht doch Range("F1").Value = Date das Datum wird aber in K1 geschrieben, sowie .Range("D1").Interior.Color es wird jedoch statt D1 die Zelle I1 gefärbt und dazu noch in einer Farbe, die nicht dem Farbcode aus Spalte B entspricht.

Das Problem mit den falschen Zellen habe ich jetzt noch beheben können, indem ich das Makro etwas umgeschrieben habe:

Option Explicit

Private Sub Workbook_Open()

    With Worksheets("Tabelle1")
        If .Range("F1").Value > Date Then
                .Range("D1").Interior.Color = RGB(Range("B1").Value, Range("B2").Value, Range("B3").Value)
                .Range("F1").Value = Date
            Else
                ThisWorkbook.Close False
        End If
    End With
    
End Sub
Aber das Farbproblem besteht immer noch, die Füllfarbe entspricht nicht den Farbcodes in Spalte B, wie als wenn die Zufallszahlen nach dem Füllen der Zelle nochmals neu berechnet werden. Das war vorher, als das das Füllen der Zelle das einzige war was das Startmakro gemacht hat, kein Problem, da war die Farbe mit den Zahlen identisch.

Habe es dann noch mit

Option Explicit

Private Sub Workbook_Open()

    With Worksheets("Tabelle1")
        If .Range("F1").Value > Date Then
                .Range("D1").Interior.Color = RGB(Range("B1").Value, Range("B2").Value, Range("B3").Value)
                Application.Calculation = xlCalculationManual
                .Range("F1").Value = Date
            Else
                ThisWorkbook.Close False
        End If
    End With
    
End Sub
probiert, dann wurden auch die richtigen Zahlen angezeigt.

Aber ein Problem ist noch übrig, das ich nicht lösen konnte. Das Makro schließt die Arbeitsmappe, aber nicht Excel, es bleibt ein leeres Excel Fenster offen.
Gruß
Christian


Anzeige
hab vergessen den Betreff anzupassen owT
01.07.2023 12:04:15
Christian
.


jetzt ist auch das gelöst
01.07.2023 12:18:35
Christian
Hall Thorsten,

das habe ich jetzt auch gelöst. Muss jetzt nur noch die nächsten Tage abwarten um rauszufinden ob Application.Quit oder ThisWorkook.Close besser zu meinen Arbeitsgewohnheiten passt.

Danke für die viele Mühe, ich habe jetzt eine für mich funktionierende Lösung.
Christian

PS: Schönes Wochenende noch


AW: jetzt ist auch das gelöst
01.07.2023 15:51:54
Oberschlumpf
Hi,

ThisWorkook.Close = es wird nur die Excel-Datei geschlossen, in der dieser Code ausgeführt wird
Application.Quit = es wird EXCEL komplett geschlossen, egal, wie viele Excel-Dateien noch geöffnet sind

Ciao
Thorsten


Anzeige
AW: jetzt ist auch das gelöst
01.07.2023 16:08:46
Christian
Hllo Thorsten,

hmmmm ok, da ich ja beim Autostart nur eine Excel Datei drinhabe, ist es ja egal, das alles geschlossen wird.
Aber wie gesagt ThisWorkook.Close hinterlässt bei mir ein leeres Excel Fenster, ohne Zellen, ohne Gitterlinien. Excel bleibt offen.
Was passiert wenn außerdem noch eine andere Datei offen ist habe ich bislang noch nicht probiert

Christian


AW: jetzt ist auch das gelöst
01.07.2023 16:11:11
Oberschlumpf
Hi

...Aber wie gesagt ....

JA,deshalb schrieb ich ja auch: es wird NUR die Excel-Datei geschlossen!

Ciao
Ich


AW: jetzt ist auch das gelöst
01.07.2023 16:36:32
Christian
ich bin halt davon ausgegangen, dass sich wie wenn man es ohne Makro macht, in dem Moment, wo man die letzte bzw. einzige Excel Datei schließt, auch Excel schließt. Aber habe es jetzt verstanden.

157 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige