Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
824to828
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
824to828
824to828
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Stabile Ausführung des Makros

Stabile Ausführung des Makros
01.12.2006 11:27:08
Klaus Weinert
Hallo Forum,
habe ein Makro zusammengesucht (meist hier aus dem Forum) das jetzt 90 mal durchläuft (durchlaufen sollte). Es geht so leidlich aber oft genug bleibt es auch mal hängen. Ich kann es von jeder Position weiterlaufen lassen, letzlich ist das aber auch nur eine "Krücke". Nun hoffe ich das sich jemand hier erbarmt und mir daraus mal schönes VBA macht.
Hier der jetzige Stand des Makro's:

Sub Makro01()
Workbooks("web.xls").Worksheets("Tabelle1").Range("F3").Copy
AppActivate "01.html - 2ndEditor"  'Die Bezeichnug in der Taskleiste
SendKeys "^v", False
SendKeys "%ds"
SendKeys "%db"
Application.Wait Now + TimeSerial(0, 0, 2)
AppActivate "web.xls"
Application.Run "'web.xls'!Makro02"
End Sub


Sub Makro02()
Workbooks("web.xls").Worksheets("Tabelle1").Range("F4").Copy
AppActivate "02.html - 2ndEditor"  'Die Bezeichnug in der Taskleiste
SendKeys "^v", False
SendKeys "%ds"
SendKeys "%db"
Application.Wait Now + TimeSerial(0, 0, 2)
AppActivate "web.xls"
Application.Run "'web.xls'!Makro03"
End Sub

usw.
Es wird also F3 bis F92 nacheinander kopiert und in 2ndEditor eingefügt. Die Dateien für 2ndEditor werden nacheinander mit einer Batch Datei erstellt und geöffnet. - Jedesmal wenn Excel eine der 2ndEditor Dateien schließt öffnet die Batch Datei in der Reihenfolge 01.html bis 90.html eine neue.
Wenn das Makro hängen bleibt, liegt es lt. VBA Editor meist an der Zwischenablage oder an der Fenstersteuerung. Testweise hatte ich auch schon versucht ein Application.CutCopyMode = False einzubauen um die Zwischenablage zu löschen, - hat aber nicht wirklich was gebracht. Application.Wait habe ich testweise mit 5 Sekunden probiert bringt aber keine Verbesserung.
Manchmal bleibt es schon beim 3. Aufruf hängen, machmal läuft es bis zum 60. Aufruf, - es gibt keine Regelmäßigkeit.
Ich denke das die Situation genau genug beschrieben ist und bedanke mich für eine Unterstützung.
MfG
Klaus

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Stabile Ausführung des Makros
01.12.2006 11:33:47
Matthias G
Hallo Klaus,
ist des denn nicht möglich, die Daten direkt in die Datei (0x.html) zu schreiben?
Gruß Matthias
AW: Stabile Ausführung des Makros
01.12.2006 11:46:24
Klaus Weinert
Hallo Matthias,
was alles möglich ist weiß ich eigentlich gar nicht. Ich hab nur das Ziel vor Augen und der jetzige Code gibt das wieder was meiner Kenntnis entspricht.
Im Ergebnis habe ich jetzt die Dateien 01.html bis 90.html im Verzeichnis Z:\2ndEditor liegen. Der Code für die Dateien stammt aus den Zellen F3 bis F92.
Ich hoffe sogar das es andere Lösungen gibt, sonst hätte ich hier weiterhin nur mitgelesen.
MfG
Klaus
AW: Stabile Ausführung des Makros
01.12.2006 11:51:52
Matthias G
Hallo Klaus,
so erzeugst du eine Datei (eine evtl. existierende gleichen Namens wird überschrieben):

Sub Datei_erzeugen()
Dim ff As Integer
ff = FreeFile
Open "C:\text.html" For Output As ff
Print #ff, "<html>"
Print #ff, "<h3>So kannst du eine html-Datei erzeugen!</h3>"
Print #ff, "</html>"
Close #ff
End Sub

Vielleicht kannst du dir das anpassen, ansonsten frag nochmal nach.
Gruß Matthias
Anzeige
AW: Stabile Ausführung des Makros
01.12.2006 12:07:59
Matthias G
Hallo nochmal,
konkret sähe das dann so aus:

Sub Dateien_Erzeugen()
Dim i As Integer, ff As Integer
For i = 1 To 90
ff = FreeFile
Open "Z:\2ndEditor\" & Format(i, "00") & ".html" For Output As ff
Print #ff, Workbooks("web.xls").Worksheets("Tabelle1").Range("F" & i + 2)
Close #ff
Next i
End Sub

Gruß Matthias
AW: Stabile Ausführung des Makros
01.12.2006 13:02:22
Klaus Weinert
Dankeschön, klappt hervorragend. Ist auch viel schneller, nicht mehr anfällig und sehr viel weniger Code. - Ich beneide Dich um Dein können.
Eines hätte ich jetzt noch. Könntest du es noch so umstellen das nicht immer 90 Dateien erstellt werden sondern nur soviele wie es mit Text ausgefüllte Zellen zwischen M3 und M92 gibt, - beginnend ab M3.
Grund, ich brauche nicht immer die 90 Dateien und auf dem Server würde es sehr viel übersichtlicher wenn in jedem Verzeichnis nur soviele Dateien liegen wie auch tatsächlich benötigt werden.
MfG
Klaus
Anzeige
AW: Stabile Ausführung des Makros
01.12.2006 12:23:58
Klaus Weinert
Danke für den Tip, sowas suche ich mir oft hier im Forum. In diesem Fall ist es doch aber so das der Quellcode für die Datei in den Zellen F3 bis F92 steht. Der Quellcode für zb. F3 wird aus den Zellen A3 bis E3 zusammengefaßt. In A3 steht dann zb. alles bis zum Body Tag, in B3 bis D3 sind es variable, in E3 steht alles ab /Body und in F3 wird es mit Verketten zusammengefaßt.
Es geht also nicht nur darum eine Datei zu erzeugen sondern den Quellcode in die Datei zu bekommen. Der Quellcode steht in F3 bis F92 und ist jedesmal anders, die Dateien heißen 01.html bis 90.html - das muß so bleiben. Einzig das temporäre Verzeichnis für das Erstellen der Dateien ist beliebig. - Das ganze wird hinterher noch weiter bearbeitet.
Kurzum, ich bekomme das nicht angepaßt.
Ich könnte mir aber vorstellen das es mit VBA möglich ist den Quellcode aus F3 bis F92 auszulesen und ihn in 01.html bis 90.html in einem Verzeichnis zu speichern das zb. in Zelle F1 angegeben ist.
MFG
Klaus
Anzeige
AW: Stabile Ausführung des Makros
01.12.2006 13:43:10
Klaus Weinert
Habe es schon selbst gelöst. Anstatt "For i = 1 To 90" steht jetzt "For i = 1 To Cells(1, 1)" und in Cells(1, 1) steht die errechnete Zahl.
Bedanke mich, hat Spaß gemacht.
MfG
Klaus

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige