Anzeige
Archiv - Navigation
1140to1144
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

Speichermakro ausführen

Speichermakro ausführen
Mario
Hallo,
ich habe ein weiteres Problem mit der selben Datei mit der ihr mir beim letzten mal schon so gut geholfen habt. Deshalb dachte ich, ich wende mich wieder an euch.;)
Also ich brauche ein Makro, das die Excel-Datei (.xls) alle 15 Sekunden als Webarchiv abspeichert(.mht).
Das Makro soll laufen, sobald man die Excel-Datei geöffnet hat.
Ich hatte schon nach einem Makro gesucht und diesen Code hier gefunden:
ActiveWorkbook.SaveAs Filename:= _
"C:\test.mht" _
, FileFormat:=xlWebArchive, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=True  

Dabei treten natürlich Probleme auf:
1. Wenn es die .mht-Datei abgespeichert hat, ist diese offen und die .xls Datei kann sie nichtmehr neu generieren, da sie nichtmehr geöffnet ist.
2. Das Makro führt sich nicht von Anfang an alle 15 Sekunden aus.
3. Beim Speichern fragt es immer nach, ob es speichern soll.
Wie ihr sehr bin ich nicht sehr gut in VBA :( aber ich bemüh mich.
Ich hab schon lange gesucht aber nichts gefunden.
Kann mir einer helfen?
mfg
AW: Speichermakro ausführen - das war ich nicht!!!
25.02.2010 13:11:14
Mario
Hallo zusammen,
diesen Inhalt habe ich gar nicht geschrieben.
Tschau
Mario
Natürlich war ich das!!!
25.02.2010 23:14:14
Mario
Hallo
ich weiß zwar nicht wer das gesagt hat, dass ich das nicht geschrieben hätte, aber ich hab es geschrieben!
Und selbst wenn ich es nicht wäre könnte man ja antworten;)
Oder weiß es wirklich keiner? :( ich brauch doch nur eine einfache, unendliche Schleife um ein Makro.
Also bitte schreibt mir:(
bis dann
Der richtige Mario
AW: Natürlich war ich das!!!
26.02.2010 08:45:01
Mario
...hmmm, dein Beitrag wurde als Beitrag von mir angezeigt...hängt wohl damit zusammen, dass wir den gleichen Benutzernamen führen.....ich schreib mal was dazu.....übrigens: einen richtigen Mario gibt es dann wohl nicht....:-)
Tschau
Mario
Anzeige
AW: Speichermakro ausführen
26.02.2010 09:23:18
Heiko
Hallo Mario,
schau mal in die Datei im Anhang, sollte das tun was du möchtest.
https://www.herber.de/bbs/user/68253.xls
Gruß Heiko
PS: Rückmeldung wäre nett
AW: Speichermakro ausführen
01.03.2010 00:14:49
Mario
Hallo,
danke für deine Lösung!
Wenn ich aber dein Makro in meine Mappe einsetze, dann steht da der Fehler 1004: Zugriff auf die Datei verweigert.
Markiert ist die Zeile:
ActiveWorkbook.SaveCopyAs Filename:="C:\New.xls"
Weißt du auch was hier zu tun ist?
Und nochmal zu meiner Verständnis..
der 1. Pfad ist zur Datei, in die man das Makro einfügt und die auch als mht kopiert werden soll
der 2. Pfad auch
der 3. Pfad ist für die Datei die als .mht erstellt werden soll
So hab ich das verstanden. Ist das richtig?
bis dann
Mario
Anzeige
AW: Speichermakro ausführen
01.03.2010 00:15:16
Mario
Hallo,
danke für deine Lösung!
Wenn ich aber dein Makro in meine Mappe einsetze, dann steht da der Fehler 1004: Zugriff auf die Datei verweigert.
Markiert ist die Zeile:
ActiveWorkbook.SaveCopyAs Filename:="C:\New.xls"
Weißt du auch was hier zu tun ist?
Und nochmal zu meiner Verständnis..
der 1. Pfad ist zur Datei, in die man das Makro einfügt und die auch als mht kopiert werden soll
der 2. Pfad auch
der 3. Pfad ist für die Datei die als .mht erstellt werden soll
So hab ich das verstanden. Ist das richtig?
bis dann
Mario
AW: Speichermakro ausführen
01.03.2010 06:58:29
Heiko
Moin Mario.
Frühaufsteher oder was ?!
Also mal zur Erklärung:
Der GANZE Code muss in die Arbeitsmappe die du als .mht abspeichern willst.
Option Explicit
' Merkt sich den Zeitpunkt der nächsren Ausführung, zum stoppen den zyklischen Speicherns.
Dim AppOnTimeZeit As Date
Sub ZyklischSpeichern()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
' Beim SaveAs passiert genau das was du beschrieben hast, die Origina-Datei wird geschlossen  _
und
' die .mht ist offen.
' Um das zu verhindern wird erst eine Kopie (SaveCopieAS) der Originaldaeti gespeichert.
ActiveWorkbook.SaveCopyAs Filename:="C:\Copy\Teeemppp.xls"
' Diese Kopie wird dann geöffnet
Workbooks.Open "C:\Copy\Teeemppp.xls"
' Und dann wird von der nun geöffneten Datei mit SaveAs die .mht erzeugt.
' Denn nur bei SaveAs kann man die benötigten Parameter für die .mht mitgeben.
ActiveWorkbook.SaveAs Filename:="C:\Copy\Test.mht", _
FileFormat:=xlWebArchive, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=True
' Dann die .mht wieder zumachen
ActiveWorkbook.Close SaveChanges:=False
' Diese Zeile ist nur als Test damit man sieht das sich in der Datei was ändert, kannst du  _
rausnehmen.
ActiveWorkbook.ActiveSheet.Range("A21") = Now
' Neuer Aufruf um das zyklische speichern in 5 Sekunden wider aufzurufen
' Die Zeit ier anpassen.
AppOnTimeZeit = Now + TimeValue("00:00:05")
Application.OnTime EarliestTime:=AppOnTimeZeit, Procedure:="ZyklischSpeichern"
Application.DisplayAlerts = True
Application.ScreenUpdating = True
' Fertig
End Sub

Sub ZyklischSpeichernBeenden()
Application.OnTime EarliestTime:=AppOnTimeZeit, Procedure:="ZyklischSpeichern", Schedule:=False
End Sub

Aber die Fehlermeldung kann ich nicht nachbilden, bei mir klappt es.
WEnn du die Erklärungen hier liest und umsetzt, klappt es dann ?!
Gruß Heiko
Anzeige
AW: Speichermakro ausführen
01.03.2010 08:08:11
Heiko
Hallo Mario,
deinen Fehler konnte ich jetzt auch reproduzieren, mach aus dem
"C:\New.xls"
mal
"C:\Neuer Ordner\New.xls" entsprechend für die anderen Pfad auch den Ordner einfügen.
Den Ordner natürlich vorher anlegen und nochmal testen.
Mein Firmenrechner hier läßt mich auch keine Dateien direkt auf C: ablegen.
Vielleicht läuft es jetzt.
Gruß Heiko
AW: Speichermakro ausführen
02.03.2010 00:45:51
Mario
Hallo, nein ich bin Langschläfer, ich bin nur grad im Ausland un die haben (leider) 10 Stunden Zeitverschiebung. Anders ging hier einiges schneller:D
Jetzt noch eine schlechte Nachricht:
Es finktioniert irgendwie nicht. Ich vermuste, dass es an dem anderen Code liegt. Da wären dann nämlich 2 Timer. Ist das nicht möglich?
Ich häng jetz mal eine Datei an mit dem Inhalt und dem Code. Dann weißt du auch worums mir geht.
Nämlich eine Datei die ich auf dem Server ablegen kann und jeder sie öffnen kann. Darin werden Inhalte von viele anderen Excel-Dateien in eine zusammengefasst.
Vielleicht erkennst du ja so, was ich falsch mache.
Bis bald!
Mario
Die Datei:

Die Datei https://www.herber.de/bbs/user/68313.xls wurde aus Datenschutzgründen gelöscht


Anzeige
AW: Speichermakro ausführen
02.03.2010 08:09:39
Heiko
Moin Mario,
also zwei Timer zu einer Zeit gehen auch, siehe mein kleines Beispiel in der Mappe.
Habe den Code jetzt so verteilt das es bei mir läuft, der Code zum zyklisch speichern.
Deinen Code habe ich mir nicht genauer angeschaut, mußt du selbst ein wenig rumprobieren.
https://www.herber.de/bbs/user/68318.xls
Gruß Heiko
AW: Speichermakro ausführen
03.03.2010 00:51:46
Mario
Vielen Dank!
Nach langen herumprobiern und umschreiben hat es endlich geklappt. Ich weiß nicht woran es liegt aber ich kann nur dein Original verwenden. Selbst eine Kopie des Orginals die ich nicht verändert hab funktioniert nicht.
Jetzt hab ich noch eine einzige letzte Frage: Es speichert immer das gerade aktive Sheet. Das heißt wenn ich gerade eine andere Datei offen hab speichert es diese ab anstatt die, die ich haben möchte.
Kann man das nicht irgendwie festlegen? Also nicht AktiveWorkbook sondern genau dieses?
Das ist garantiert die letzte Frage;)
Bis dann
mfg
Anzeige
AW: Speichermakro ausführen
03.03.2010 06:53:28
Heiko
Moin Mario,
Workbooks("DerNameDeinerDatei").SaveCopyAs ...
Und öfter mal F1 für Hilfe drücken, dann kann mansowas auch selbst erlernen ;-)
Gruß Heiko

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige