gelöst VBA Code bricht bei Befehl Speichern unter ab

Mitglied: Blu3Scr33n

Blu3Scr33n (Level 1)

24.10.2013, aktualisiert 14:35 Uhr, 4236 Aufrufe, 14 Kommentare

Hallo liebe Administratoren,

ich habe eine Excel. Diese soll per VBA in eine CSV exportiert werden und an einen bestimmten Ort X abgelegt werden. Für den Export habe ich mir hier CSV-Export Skript ein entsprechendes Makro besorgt.
Das Makro funktioniert, wenn ich nur den Export vornehmen möchte. Füge ich allerdings den "Speichern unter" Befehl hinzu, so bricht er ab in Zeile 32.
Im Code steht "SPEICHERORT" stellvertretend für den Speicherpfad. Diesen habe ich für dieses Forum allerdings anonymisiert

Kann mir jemand mit dem Code helfen? Ich habe keine Ahnung, warum er abbricht.

Beste Grüße

Blu3Scr33n
Mitglied: 106543
24.10.2013 um 14:24 Uhr
Hi,

mit welchem Laufzeitfehler bricht der Code denn ab ?

Grüße
Exze
Mitglied: derinderinderin
24.10.2013 um 14:27 Uhr
Zeile 15 sowie Zeile 30 kommen mir seltsam vor.

"SPEICHERORT" ist kein Pfad... bzw. du hinterlegst im Quellcode keinen.
Der Variable Speicherpfad weist du den Wert "SPEICHERORT" zu.

Meines erachtens musst du in Zeile 15:

Speicherpfad = "SPEICHERORT" einen gültigen Pfad eintragen z.B.
Speicherpfad = "C:\Temp"

und dann in Zeile 30

statt
ChDir "SPEICHERORT"
dann
ChDir Speicherpfad

Frag mich nur warum er dann bei 32 stehenbleibt, nicht schon bei 30.

einfügen.
Mitglied: Blu3Scr33n
24.10.2013 um 14:32 Uhr
Hallo Exze

Laufzeit '70':
Zugriff verweigert

Gruß Blu3Scr33n
Mitglied: Blu3Scr33n
24.10.2013 um 14:33 Uhr
Hallo derInderInderin,

das hätte ich vielleicht erwähnen sollen. Wo in meinem Code "SPEICHERORT" steht, steht auch ein tatsächlicher Speicherpfad. Den habe ich jetzt nur auf Grund der Anonymisierung "SPEICHERORT" genannt.

Gruß

Blu3Scr33n
Mitglied: 106543
24.10.2013 um 14:40 Uhr
Hi,

"Zugriff verweigert" ...
da gibt´s 2 plausible Erklärungen.
1. die Datei ist bereits geöffnet und kann nicht nochmal geöffnet werden, wegen Schreibschutz
2. der User, der das Tool ausführt hat keine Berechtigung, die Datei zu öffnen (unwahrscheinlich, ich weiß ...)

Grüße
Exze
Mitglied: derinderinderin
24.10.2013 um 14:41 Uhr
Aah ich verstehe

Ich hab das Ding mal mal mir laufen lassen. Mit Lokalem Laufwerk klappt es.
Hast du dir nochmal die Berechtigungen auf dem Ziellaufwerk angeguckt?
Klappts bei dir auch mit C:\Temp oder ählnlichen?
Mitglied: Blu3Scr33n
24.10.2013 um 14:43 Uhr
Ich laufe hier auf nem Thin Client. In diesem Zusammenhang gibt es für mich kein Laufwerk C:
Das Laufwerk, wo die CSV gespeichert werden soll ist ein Netzlaufwerk. Für die entsprechenden Pfade habe ich allerdings Zugriffsrechte.
Mitglied: Blu3Scr33n
24.10.2013 um 14:45 Uhr
Hallo Exze,

1. Die Datei kann noch garnicht geöffnet sein, da er ja aus der XLSM (Excel mit Makro) eine CSV exportieren soll. Diese wird somit erst erstellt.
2. Wie du schon selber sagst, eher unwahrscheinlich. Ich bin Ersteller der Datei und habe auch auf den Dateipfad, wo die Excel liegt Zugriffsrechte.

Gruß

Blu3Scr33n
Mitglied: 106543
24.10.2013 um 14:48 Uhr
Hi,

du schreibst ja
das speichert zwar die Excel-Session, beendet diese aber nicht.
Ich denke laut deinem Code du willst dann glaube ich ín die selbe Excel-Datei schreiben, was natürlich so nicht möglich ist, da sie noch geöffnet ist.
Falls ich falsch liege sag Bescheid, ich blick bei deinem Code noch nicht ganz durch.

Grüße
Exze
Mitglied: Blu3Scr33n
24.10.2013 um 14:56 Uhr
Hallo Exze,

die Excel kann danach gerne geschlossen werden. Hauptsache, die CSV wird korrekt und an den korrekten Ort exportiert.
Welchen Befehl müsste ich denn dafür noch einfügen müssen?

Ich entschuldige mich für das eventuelle Code-Wirrwarr. Meine VBA-Kenntnisse sind eher rudimentär.

Grüße

Blu3Scr33n
Mitglied: 106543
24.10.2013 um 15:00 Uhr
Hi,

um komplett Excel zu schließen, bräuchtest du
ACHTUNG! Das schließt _sämtliche_ Excel-Dateien, die grade offen sind.
Wenn nur das aktuelle Excel-File geschlossen werden soll, solltest du
einfügen.
Das "True" am Ende bedeutet, dass die Mappe automatisch beim Beenden gespeichert wird und nicht erst nachgefragt wird.

Grüße
Exze
Mitglied: Blu3Scr33n
24.10.2013 um 15:12 Uhr
Hy Exze,

Wenn ich
in Zeile 31. setze, dann schließt er die Excel und generiert auch ordnungsgemäß die CSV.
Schaue ich dann allerdings in die CSV rein, stehen dort nur Hyroglyphen.

Das muss an dem Codeteil danach liegen, der erst für die Ordnungsgemäße Zuordnung der CSV Einträge zuständig ist.
Hast du diesbezüglich eine Hilfestellung?

Grüße

Blu3Scr33n
Mitglied: Blu3Scr33n
24.10.2013 um 15:21 Uhr
So...Ich habs gelöst. Auf die nicht schöne aber funktionierende Tour.
Ich habe jetzt einfach ein Makro in Excel aufgezeichnet, dass das Speichern der Datei übernimmt und in den Code mit eingebaut.
Er sieht jetzt folgendermaßen aus:
Mitglied: Blu3Scr33n
24.10.2013 um 15:22 Uhr
Falls irgendwem eine schönere Codevariante einfällt, nehme ich auch gerne diese.
Ich bedanke mich für die kompetente Hilfe und setze diesen Thread auf gelöst.

Beste Grüße

Blu3Scr33n
Titel: VBA Code bricht bei Befehl Speichern unter ab
Content-ID: 220330
Art des Inhalts: Frage
Ausgedruckt am: 28.02.2020 um 18:30:06 Uhr
URL: https://administrator.de/contentid/220330