1.5k Aufrufe
Gefragt in Tabellenkalkulation von tomschi Mitglied (879 Punkte)
Hallo zusammen!

Ich habe ein kleines Problem beim zweiten Start eines Makros.
Wird der Code erstmalig ausgeführt, so klappt alles einwandfrei.
Jedoch erscheint bei einem neuerlichen Start die Meldung
Laufzeitfehler '1004'

Vielleicht kann mir jemand sagen woran dies liegt und wie ich dies unterbinden kann.

Zur Vereinfachung habe ich unter
www.file-upload.net/download-4131671/hist_EURIBOR_2012_123.xls.html
eine entsprechende Musterdatei abgelegt.

Danke!

Tom

2 Antworten

0 Punkte
Beantwortet von theblackbird_ Mitglied (605 Punkte)
Moin,

Ein wenig "verwirrt" ist der Code ja nun schon. Aber mal von vorn:

Dein "Problem" (zumindest die Ursache fuer die Fehlermeldung bei Deiner Art zu programmieren) ist der Tabellenschutz. Lass die Tabelle "Euribor" einmal ungeschuetzt und schuetze sie im Makro auch nicht. (Zeile mit .protect mal auskommentieren.) Dann sollte das Makro auch mehrmals hintereinander durchlaufen.
=> ist die Tabelle geschuetzt, loescht die Unprotect-Methode den Inhalt der Zwischenablage. Es gibt in dem Moment dann nichts zum Einfuegen=> Fehlermeldung
(War mir vorher auch noch nie so aufgefallen.)

Was mir noch so aufgefallen ist:
- Du solltest im Download-Sub die Variable lResult auch auswerten.Ist der Download erfolgreich, sollte sie 0 sein. Jeder andere Wert weisst auf einen Downloadfehler hin.
Warum?: Schlaegt nun der Download fehl, dann wird im spaeteren Ablauf ein Laufzeitfehler auftreten, wenn auf die NICHT vorhandene Datei in C.\Temp zugegriffen werden soll.
- Aehnlich verhaelt es sich mit der InputBox aus dem Sub "Aufbereitung..." War der Download erfolgreich, dann liegt das File in C:\Temp bereit. Aendert Dein USER nun in der InputBox allerdings den Pfad auf ein nicht existierendes File-> Laufzeitfehler
- Ebenso hast Du einen Logikfehler beim WkbExists. InputBox-Abfrage schreibt das Ergebnis in fname. Auf "Offen?" wird aber sFile geprueft und ggf. geschlossen um anschliessend doch fname zu oeffnen. Aendert Dein User in der InputBox also den String, pruefst und schliesst Du ggf. das falsche File.

Du siehst, spaetestens wenn Du es "nachspielst", dass da noch einige Fehlerquellen auf Dich lauern.

Muss der User die DatenQuelle (zweite InputBox) tatsaechlich neu auswaehlen? Kann man sich das nicht sparen, und IMMER das heruntergeladene File heranziehen?

soweit mal bis hierhin
TheBlackBird ®
0 Punkte
Beantwortet von tomschi Mitglied (879 Punkte)
Guten Morgen "The BlackBird"!

Herzlichen Dank für Deine Hilfen und Deine konstruktiven Anmerkungen!
Du hast mir damit sehr weitergeholfen.

Ciao

Tom
...