Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1828to1832
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

Wenn Datei offen, dann save and close

Wenn Datei offen, dann save and close
18.05.2021 07:55:45
Peter
Guten Morgen zusammen,
ich suche einen Ansatz wie ich folgendes Problem lösen kann.
In der Datei 1 lasse ich Daten via Power Query einlesen, diese aufbereiten und in einer Pivottabelle anzeigen.
Dafür muß ich unter anderem eine Datei 2 aus einer Datenbank via export als .csv Datei exportieren.
Diese Datei 2 öffnet sich, wird immer im gleichen Pfad abgespeichert und wird danach automatisch wieder geschlossen.
Danach wird Datei 1 aktualisiert via "Refreshall".
In meinem Code, der noch unten eingefügt wird, prüfe ich sekündlich, ob die Datei geöffnet ist. Wenn das der Fall ist, läuft das Makro durch (speichern und schließen).
Das führt jedoch dazu, daß permanent andere geöffnete Excel Dateien überlagert werden, da die Prüfung und der Refresh ständig durchgeführt wird.
Ich suche nun eine Möglichkeit, wie eine Aktualisierung nur dann stattfinden kann, wenn die Datei tatsächlich geöffnet ist. Habt Ihr dafür evtl. eine Idee?
Hier der/die Codes:
1. Diese Arbeitsmappe:

Private Sub Workbook_Open()
Call IntervallDaten
Call IntervallClose
End Sub
2. Modul1
Sub IntervallDaten()
Dim NextTime As Date
NextTime = Now + TimeValue("00:00:10")
Application.OnTime NextTime, "IntervallDaten"
ThisWorkbook.RefreshAll
End Sub Sub IntervallClose()
Dim NextTime As Date
NextTime = Now + TimeValue("00:00:01")
Application.OnTime NextTime, "IntervallClose"
Call DateiOffen
End Sub 3. Modul 2
Sub DateiOffen()
Dim wkbMappe As Workbook
On Error Resume Next
Set wkbMappe = Workbooks("Datei2.csv")
On Error GoTo 0
Application.DisplayAlerts = False
If Not wkbMappe Is Nothing Then wkbMappe.SaveAs FileName:="Y:\Order\Unterordner1\Unterordner2\Datei2.csv"
If Not wkbMappe Is Nothing Then wkbMappe.Close
Application.DisplayAlerts = True
End Sub 4. Pivotaktualisierung (für das Problem vermutlich nicht relevant. Der Vollständigkeithalber jedoch mal mit dabei)
Tabelle2 der Arbeitsmappe

Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Intersect(Target, Range("b2:b500"))
If Target Is Nothing Then Exit Sub
Dim pc As PivotCache
For Each pc In ActiveWorkbook.PivotCaches
pc.Refresh
Next
End Sub
Vielen Dank schon einmal für Ideen.
Viele Grüße
Peter

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Tabellenzeilen zusammenfassen
18.05.2021 08:49:25
Sara
Moin!
Ich bin mir nicht sicher, wo ich einen eigenen Forumsbeitrag erstellen kann. Wahrscheinlich lande ich jetzt unter Peters.
Ich würde gerne in Excel aus einer Reihe von Prozessdaten auflisten, welche einen Grenzwert überschreiten. Also wann und wie lange. Dabei habe ich zu jedem Wert auch den genauen Zeitstempel. Wird ein Grenzwert über einen Zeitraum überschritten möchte ich diesen Zeitraum als EINE Überschreitung zählen und den Zeitraum in der List mit angeben.
Ich dachte an sowas:
IF wert (i) > x UND wert (i-1) counter = counter + 1
in andere Matrix counter und Zeit (i) eintragen (counter; Zeit (i); Zeit (ende))
ELSE IF wert (i) > x UND wert (i+1) Zeit (i) in Matrix als Enddatum in Zeile mit gleichem counter wert eintragen
ELSE
counter bleibt gleich, kein Eintrag in Matrix
Am Ende hätte ich dann eine Tabelle mit der Nummer der Überschreitung (counter) mit Anfangs- und Endzeitpunkt der Überschreitung.
Kann man sowas mit VBA oder Excelfunktionen realisieren?
Ich habe mit VBA keine Erfahrung ..
Ich bin dankbar für jede Hilfe! Vielen Dank im Voraus!
Viele Grüße
Sara
Anzeige
@Sara: ganz oben links "Neuer Beitrag" ...
18.05.2021 09:44:36
Pierre
Offen, da Peters Frage nicht beantwortet wurde.
Power Query-Abfrage sind auch Abfrage
18.05.2021 11:02:53
Yal
Hallo Peter,
Du kannst deine Power Query unter Tabellentools, Aktualisieren, Verbindungseigenschaften die Aktualisierung bis zum Minutentakt einstellen.
Dann brauchst Du kein Code.
VG
Yal
AW: Power Query-Abfrage sind auch Abfrage
18.05.2021 11:17:07
Peter
Hallo Yal,
vielen Dank für Deine Antwort.
Die Minuteneinstellung der Aktualisierung auf Minutenbasis habe ich bereits vorgenommen.
Ich möchte die geöffnete Datei2 jedoch gern sofort wieder speichern und schließen.
Ich habe eine Userformoberfläche für die Anzeige der Daten aus der Pivottabelle gebaut und dafür alle geöffneten Excelsheets, welche dafür notwendig sind jedoch ausgeblendet.
Ich könnte natürlich die Prüfung, ob die Datei2 geöffnet ist, auch minütlich vornehmen lassen. Jedoch wäre die Datei2 für ca. 1 Minute geöffnet und würde ggfs. andere Programmoberflächen überdecken. Das möchte ich mit der sekündlichen Prüfung für eine gute Usability vermeiden.
Grüße
Peter
Anzeige
AW: Power Query-Abfrage sind auch Abfrage
18.05.2021 11:25:02
Peter
noch ein Zusatz:
letztendlich möchte ich eigentlich nur eine Aktualisierung haben, wenn sozusagen die Datei einmal abgespeichert und wieder geschlossen wurde.
Eine regelmäßige Aktualisierung ist eigentlich nicht notwendig.
Den Refreshall habe ich nur deshalb auf 10 Sekunden eingestellt, damit sich die Anzeige in der Userform recht zügig aktualisiert und ich nicht erst 1 Minute darauf warten muß.
AW: Power Query-Abfrage sind auch Abfrage
18.05.2021 11:27:06
Yal
Hallo Peter,
genau gesehen, ist es für die PQ-Abfrage egal, ob die Datei geöffnet ist oder nicht. Es holt sich einfach die Daten.
Natürlich, wenn Du Änderungen in Tabelle2 machst, dann hast Du bis zu eine Minute Latenz, bis deine Daten in der Pivot aktuell sind.
Wenn Tabelle2 nichts anderes als eine Datenbank-Abfrage ist, warum diese Abfrage nicht direkt in PQ einbauen?
VG
Yal
Anzeige
AW: Power Query-Abfrage sind auch Abfrage
18.05.2021 13:22:51
Peter
Hallo Yal,
neben der frischen Luft hast Du mir einen guten Denkanstoß gegeben. Ich habe die Aktualisierung der Datei in die Userform integriert. Da der User über 3 verschiedene Button die Ansicht/Filter in der Listbox ohnehin betätigt, habe ich die Aktualisierung dort mit verknüpft. So wird es dann nur aktualisiert, wenn dies auch tatsächlich benötigt, sprich ein Filterbutton betätigt wird.
Puh...mancher Knoten sitzt manchmal fest....
Danke Dir.
Grüße
Peter
4-Augen-Prinzip...
18.05.2021 13:39:14
Yal
... schon die Tatsache, dass man sein Tun erklären muss, führt zu einer neuen Sicht.
Es freut mich, zu etwas positives beigetragen zu haben.
VG
Yal
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige