Makro wiederholen lassen geschlossen 

Status
Für weitere Antworten geschlossen.

fexs

Registered +
Registriert
Mai 2009
Beiträge
316
Hallo,
ich weiß nicht ganz genau ob das jetzt in den Codingbereich oder hier her gehört aber ich denke mal ich bin damit hier richtig.

Ich habe zwei Makros, die ich gerne undendlich oft all 10 Sekunden ausführen lassen möchte. Ich denke da gibt es bestimmt eine einfache Loop-Schleife oder soetwas in der Art. Aber meine Anforderungen werden noch höher;)

Also hier erstmal das Makro, das mir sorgen macht:
Code:
Sub speichern()
ActiveWorkbook.SaveAs Filename:= _
"C:\Test.mht" _
, FileFormat:=xlWebArchive, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=True
End Sub

Es ist sogut wie "Speichern unter..." wenn ich das Makro nun einmal ausführe wird "excelfile.xlsm" gespeichert als "excelfile.mht". Danach ist nichtmehr "excelfile.xlsm" offen und das Makro könnte nichtmehr ausgeführt werden, da in .mht keine Makros ausführbar sind. Also es müsste eine Kopie der Datei als .mht(Webarchiv) abspeichern doch trotzdem die aktuelle .xlsm-Datei geöffnet halten.

Hat irgendjemand eine Lösung für mich??
Ich wäre auch schon für einen Teil der Lösung sehr dankbar!:(
Bis Bald!
fexs
 
hi fexs,

schon mal mit
Code:
ActiveWorkbook.SaveCopyAs
probiert?

Speichert eine Kopie der Arbeitsmappe in einer Datei, ändert aber nicht die geöffnete Arbeitsmappe im Speicher.


die ganze Schleife würde so aussehen
Code:
Sub t()
Dim tmp_xls As String

On Error GoTo FEHLER
tmp_xls = "c:\temp\test.xls"
Do Until 1 = 0
ActiveWorkbook.SaveCopyAs tmp_xls
Workbooks.Open tmp_xls
Kill "C:\temp\Test.mht"
ActiveWorkbook.SaveAs Filename:= _
"C:\temp\Test.mht" _
, FileFormat:=xlWebArchive, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=True
ActiveWorkbook.Close False
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 10
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
Loop
Exit Sub
FEHLER:
Select Case Err.Number
Case 53
Resume Next
Case Else
MsgBox Err.Number & vbCrLf & vbCrLf & Err.Description, vbCritical, "Script-Fehler"
End Select
End Sub
Da 1 nie 0 sein wird, würde die Schleife unendlich durchlaufen werden, aber ACHTUNG

Die Wait-Methode unterbricht alle Aktivitäten von Microsoft Excel und verhindert unter Umständen auch das Ausführen sonstiger Vorgänge auf dem Computer. Hintergrundprozesse, wie Drucken und Neuberechnung, werden jedoch fortgesetzt.


Gruss,
ede
 
Zuletzt bearbeitet von einem Moderator:
Hallo, danke genau soetwas habe ich gesucht. Das mit dem unterbrochenen Aktivitäten ist erstmal nicht so wichtig solange nur die Hintergrundprozelle laufen.
Nur bei mir geht da jetz im Debugger bei "newHour", dass die Variable nicht definiert ist.
Ich bin Leihe;) .. muss ich das jetzt deklarieren? Oder was muss ich tun?

Aber trotzdem schonmal vielen Dank für die Mühe und die Zeit die du mir geopfert hast!:)
Würde man hier Thanks sammeln können hätte ich dir ein oder zwei gegeben;)
mfg fexs
 
Zuletzt bearbeitet von einem Moderator:
Status
Für weitere Antworten geschlossen.
Zurück
Oben Unten