Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA, Excel öffnen, aktualisieren, speichern & schließen
#1
Halllo zusammen,
versuche als 1.Postler VBA Anfänger mal mein Glück:

Ich habe folgendes Problem:
Excel Dateien werden per .bat Datei in einer zeitlichen Abfolge (Nachts) geöffnet. Über Power Query ziehe ich mir automatisiert externe Daten in diese Exceldateien. Die Dateien aktualisieren sich und rechnen. Nach dem letzten Rechenprozess ruht Excel eine Minute, speichert dann und schließt sich.
Dies konnte ich bereits erfolgreich testen. Nun fehlen wir noch zwei i-Tüpfelchen:
1. (für mich wichtig) nach dem Speichern bzw. vor dem Schließen soll eines der Tabellenblätter zusätzlich unter einem anderen Pfad gespeichert werden
2. (Königsklasse, weniger wichtig, da bereits manuell gelöst) vor dem Speichern, sollen sich die Pivot Tabellen noch einmal aktualisieren, da sich diese scheinbar direkt bei Öffnen aktualisiren und damit durch sind, bevor die externen Datenquellen geladen wurden. Also ein Problem in der Reihenfolge... aktuell öffne ich die Exceldatei einfach zeitversetzt noch einmal, dann sind die externen Daten bereits vorhanden und  die Pivots aktualisieren sich dementsprechend.
 
Hier mal die funktionierene (aktuelle) VBA Eintragungen:
Arbeitsmappe:

Code:
Dim altezeit
Private Sub Workbook_Open()
On Error Resume Next
neuezeit = Time + TimeSerial(0, 1, 0)
Application.OnTime EarliestTime:=altezeit, Procedure:="Schließen", Schedule:=False
altezeit = neuezeit
Application.OnTime neuezeit, "Schließen"
End Sub
 
 
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
neuezeit = Time + TimeSerial(0, 1, 0)
Application.OnTime EarliestTime:=altezeit, Procedure:="Schließen", Schedule:=False
altezeit = neuezeit
Application.OnTime neuezeit, "Schließen"
End Sub
 
 
 
Modul1:
Sub Schließen()
ActiveWorkbook.Close savechanges:=True
End Sub

 
Würde mich über Anregungen/Hilfe freuen
Beste Grüße
Dennis
Antworten Top
#2
Hallöchen,

Der VBA-Code ist von Dir? Da gehe ich mal davon aus, dass die folgenden Hinweise reichen. Falls nicht, nicht scheuen und nochmal fragen...
Bei einigen Aktionen ist der Makrorekorder ganz hilfreich. Ich habe hier mal eine Kopie einer Tabelle irgendwo gespeichert und dne Code dazu aufgezeichnet:

Sub Makro1()
'
' Makro1 Makro
'

'
Sheets("Tabelle1").Select
Sheets("Tabelle1").Copy
ChDir "I:\"
ActiveWorkbook.SaveAs Filename:="I:\Mappe2.xlsx", FileFormat:= _
xlOpenXMLWorkbook, CreateBackup:=False
ActiveWindow.Close
End Sub

Den Refresh der Pivottabelle bekommt man glaube auch mit der Aufzeichnung hin. Falls nicht, bitte nochmal anfragen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste