PDA

Vollständige Version anzeigen : automatisch speichern über vba


ahuber
03.11.2005, 15:34
Hallo zusammen

Ich habe eine Excel-Mappe welche über ein Makro geöffnet wird. Beim Speichern dieser Mappe läuft ein Makro ab, welches eine weitere Mappe öffnet, da Daten reinschreibt und diese wieder schliesst. Das Problem ist nun, das dies funktioniert, wenn ich normal speichern drücke. Starte ich das Speichern nun aber ebenfalls über ein Makro (automatisches schliessen der Mappe via Timer mit Workbook.Save), dann läuft der Code zwar ab (ohne Fehler), die zweite Mappe wird aber nicht geöffnet. Ich habe den Code über den Debugger ablaufen lassen und konnte zusehen, wie er auf die Zeile mit dem Befehl Workbook.Open geht, diesen ausführt aber nichts macht???!!!

Besten Dank für jegliche Hilfe

Andy

Trantüte
04.11.2005, 07:06
hi ahuber

poste doch mal den code.

mfg david

ahuber
07.11.2005, 07:53
Hallo David

Das ganze ist ziemlich umfangreich, welchen Teil möchtest Du denn haben (Zeitmakro, Makro welches ist in die zweite Mappe schreibt...)?

Gruss Andy

Trantüte
07.11.2005, 10:47
hi ahuber

porte erst mal den timer code und den speichern event code (notfalls kannst du ja unrelevante sachen weglöschen z.b. beim reinschreiben von daten nur ein beispiel anweisung stehen lassen)

mfg david

ahuber
07.11.2005, 12:13
Hallo David

Ich hab das ganze abgespeckt und sende Dir zwei Dateien. Mappe1.xls enthält den ganzen Code. Nach zwanzig Sek. kommt ein Userform welches nachfragt ob man beenden will. Wenn man nun nicht reagiert schliesst sich die mappe1 nach zehn Sek. Dabei wird der Save aufgerufen, welcher nun aber die Mappe2 eben nicht öffnet.

Gruss Andy

P.S. Damit das ganze klappt musst die die beiden Dateien im Verzeichnis c:\temp\ speichern oder kurz den Code anpassen.

Trantüte
09.11.2005, 12:45
hi

sorry ich geb auf keine Ahnung woran es liegt :)

mfg david

ahuber
11.11.2005, 14:49
Kein Problem, trotzdem besten Dank

Gruss Andy

Hajo_Zi
11.11.2005, 15:21
Hallo Andy,

ich habe jetzt nicht die Dateien runtergeladen, aber nach Deiner Beschreibung vermute ich mal soll die Datei1 geschlossenen werden und danach die Datei 2 geöffnet werden. Falls Du den Code so geschrieben hast kann es nicht gehen. Du mußt erst die 2. Datei öffnen bevor Du die erste schließt. Falls ich das falsch gelesen haben melde Dich noch mal.
Zu den Dateinamen schreibe ich jetzt nichts, da hat jinx und auch ich mich schon paarmal zu geäußert. Diese Dateien lade ich nicht runter.

<img src="http://home.media-n.de/ziplies/images/grusz.gif" align="middle" height="40" alt="Grußformel">
<a href="http://home.media-n.de/ziplies/" target="_blank">
<img border="0" src="http://home.media-n.de/ziplies/images/logo_hajo.gif" align="middle" height="40" alt="Homepage"></a>

Beverly
11.11.2005, 15:51
Hi Andy,

ergänze bitte folgenden Codeteil:
Sub Schließen()
'Unload UserForm1
If BoZu = False Then
Totalisieren
ThisWorkbook.Save
If Workbooks.Count = 1 Then Application.Quit Else ThisWorkbook.Close
End If
End Sub

Wie du aus Hajo's Beitrag erkennen kannst, lädt er Dateien mit nichts sagenden Namen wie Mappe1 usw. nicht herunter, da dadurch andere Dateien überschrieben werden können. Ich habe mir dennoch die Mühe gemacht und dann Rücksprache mit Hajo genommen. Im Ergebnis sind wir zur o.a. Ergänzung gekommen.

ahuber
14.11.2005, 06:39
Hallo Karin

Besten Dank, so geht's. Anscheinend passt es Excel nicht, wenn ich den Code aus einer untergeordneten Prozedur aufrufe. Betreffend Dateinamen... hab ich nicht gewusst, aber ist natürlich wirklich nicht sehr schlau von mir gewesen. Gelobe selbstverständlich Besserung für's nächste Mal :-)

Gruss

Andy

Beverly
14.11.2005, 06:45
Hi Andy,

Einsicht ist der erste Schritt zur Besserung ;) .

Wir machen alle Fehler. Nur wer nichts tut, der macht keine. Oder vielleicht gerade?