Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1652to1656
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
Inhaltsverzeichnis

Laufzeitfehler 9 bei Workbooks("Hilfsdatei").Close

Laufzeitfehler 9 bei Workbooks("Hilfsdatei").Close
25.10.2018 09:04:46
Kurt
Hallo liebe Spezialisten!
Ich möchte euch bitte um Rat fragen.
In meinem VBA Code speichere ich eine Datei unter einem definiertem Pfad unter dem Namen "Hilfsdatei".
Der Auszug des Codes sieht so aus:
Option Explicit
Public Speicher_Pfad_Hilfsdatei As String
_____________________________________________________
Speicher_Pfad_Hilfsdatei = "X:\meinPfad\Hilfsdatei"
ActiveWorkbook.SaveAs Speicher_Pfad_Hilfsdatei, FileFormat:=51
Auf dieses File kann dann nämlich eine andere Software zugreifen.
Das funktioniert!
Diese Hilfsdatei soll aber nicht geöffnet bleiben, deshalb schließe ich sie mit
Workbooks("Hilfsdatei").Close SaveChanges:=True
Auf meinem PC funktioniert das auch, aber wenn ich das Makro auf einem anderen Rechner laufen lasse, bekomme ich Laufzeitfehler 9.
Es sein noch erklärt, dass der Speicherpfad ein Netzlaufwerk ist, auf den alle User (Voll-) Zugriff haben.
Ich habe schon herausgefunden dass das der Laufzeitfehler 9 bedeutet, dass das Objekt nicht gefunden wird.
Bei meinem PC wird es aber offensichtlich schon gefunden.
Die Debugging Option zeigt, dass das Problem exakt bei der Zeile "Workbooks("Hilfsdatei").Close" auftritt.
Auch ein Voranstellen von
Workbooks("Hilfsdatei").Activate
bringt keine Besserung - dann ist eben schon diese Zeile gelb markiert.
Hat jemand eine Idee woran es liegen könnte, dass das Makro auf einem PC funktioniert, und am anderen nicht?
Vielen Dank vorab für eure Zeit und Expertise! :-)
Kurt

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 9 bei Workbooks("Hilfsdatei").Close
25.10.2018 09:13:02
Hajo_Zi
Hallo Kurt,
zeichne das speichern unter mal mit dem Makrorecorder auf.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
AW: Laufzeitfehler 9 bei Workbooks("Hilfsdatei").Close
25.10.2018 09:20:24
Kurt
ok, hab ich gemacht.
was jetzt? :-)
das speichern ist ja auch gar nicht das problem, sondern das schließen.
ich versteh den ansatz nicht...!
nebenbei: die genaue fehlermeldung lautet:
Laufzeitfehler 9
Index außerhalb des gültigen Bereichs
AW: Laufzeitfehler 9 bei Workbooks("Hilfsdatei").Close
25.10.2018 09:19:49
Daniel
HI
Die unterschiedlichen Verhaltensweisen könnten an der Einstellung im Explorer liegen, ob die Dateiendung mit angezeigt werden soll oder nicht.
Wenn du die Dateiendung nicht anzeigen lässt, brauchst du sie auch in Excel nicht angeben, wenn du das Workbook ansprichst.
Haben deine Kollegen diese Einstellung nicht aktiviert, so müssten sie auf ihrem Rechner die Datei mit der Endung ansprechen (Workbooks("Hilfsdatei.xlsx").Activate
wenn du die Datei schon vorher mit ActiveWorkbook.SaveAs gespeichert hast, dann kannst du sie auch mit ActiveWorkbook.Close schließen, ohne den Namen verwenden zu müssen.
Gruß Daniel
Anzeige
AW: Laufzeitfehler 9 bei Workbooks("Hilfsdatei").Close
25.10.2018 09:52:56
Kurt
vielen dank daniel für die erklärung!
das ist es!
ich umgehe das problem jetzt wie folgt:
If Dir("Hilfsdatei") "" Then
Workbooks("Hilfsdatei").Close SaveChanges:=True
Else
Workbooks("Hilfsdatei.xlsx").Close SaveChanges:=True
End If
denkst du das ist eine gute lösung, oder denke ich da zu kompliziert?
herzlichen dank nochmals!
AW: Laufzeitfehler 9 bei Workbooks("Hilfsdatei").Close
25.10.2018 10:00:55
Hajo_Zi
habe ich es also richtig gesehen das es am Speichern liegt. Du speicherst die Datei ohne Dateityp.
Gruß Hajo
AW: Laufzeitfehler 9 bei Workbooks("Hilfsdatei").Close
25.10.2018 10:04:57
Daniel
Hi
naja, kann man machen.
ich würde versuchen, in der Programmierung ohne den Dateinamen auszukommen.
eine Möglichkeit hatte ich dir ja gezeigt.
Wenn du die Hilfsdatei mit ActiveWorkbook.SaveAs speichern kannst, kannst du sie auch mit ActiveWorkbook.close direkt danach schließen (außer du aktivierst zwischendrin ein anderes Workbook)
ansonsten würde ich, wenn du die Mappe erzeugst, diese gleich einer Variablen zuweisen und dann diese Variable verwenden, wenn du diese Mappe ansprechen willst:
dim wbHilfe as Workbook
set wbHilfe = Workbooks.Add
... hier der Code zum Befüllen der Datei
wbHilfe.SaveAs ...
wbHilfe.Close
Gruß Daniel
Anzeige
AW: Laufzeitfehler 9 bei Workbooks("Hilfsdatei").Close
25.10.2018 10:49:18
Kurt
Danke für eure Rückmeldungen!
@Hajo_Zi: der Dateityp ist doch durch "FileFormat:=51" definiert!? verstehe ich das was falsch?
@Daniel: "Workbooks.Add" ist vielleicht nicht die richtige wahl für mich. :-/
hintergrund: meine datei ist eine xltm, die andere software kann aber nur mit xlsx arbeiten.
also mache ich eine "kopie" ihrer selbst ohne makros, und schließe sie dann. mit "Workbooks.Add" bekomme ich eine neue, leere datei.
und ja, ich aktiviere zwischendurch leider ein anderes workbook um hier daten rein zu schreiben.
sorry falls ich hier am schlauch stehe!
AW: Laufzeitfehler 9 bei Workbooks("Hilfsdatei").Close
25.10.2018 11:12:56
Daniel
hi
klar du hast mir ja auch noch nicht erzählt, wie du die Datei erstellt.
sollte dir nur zeigen, dass es sinnvoll ist, das Workbook möglichst früh einer Variablen zuzuweisen und dann die Variable zu verwenden.
wenn es sich um die Datei handelt, die auch das makro enthält, kannst du auch ThisWorkbook verwenden.
und weiterhin gilt:
wenn du mit ActiveWorkbook.SaveAs die richtige Datei speicherst, dann sollte ActiveWorkbook.Close auch die richtige Datei schließen, außer du wechselst zwischendrin nochmal das ActiveWorkbook.
aber auch dann könntest du eben kurz vor dem Speichern das ActiveWorkbook einer Variabeln zusweisen, um dann diese zum Schleißen der Datei einzusetzen.
Gruß Daniel
E
Anzeige
AW: Laufzeitfehler 9 bei Workbooks("Hilfsdatei").Close
25.10.2018 12:31:44
Kurt
JUHU! :-)
danke für die tollen tipps!
ich hab sie wie folgt umgesetzt (falls das mal jemand liest und es braucht):
Dim wbHilfe As Workbook
Set wbHilfe = ThisWorkbook
wbHilfe.SaveAs Hilfsdatei, FileFormat:=51 'xlsx
... 'Code um Daten in weitere Datei zu überschreiben
wbHilfe.Close
VIELEN DANK!
in dem Fall kannst du dir die Variable auch sparen
26.10.2018 09:53:12
Daniel
du kannst die Datei, die das Makro enthält, immer über THISWORKBOOK ansprechen.
wenn die Bezeichnung "wbHilfe" den Code jedoch übersichtlicher macht, dann kannst du natürlich auch die Variable behalten.
Gruß Daniel

58 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige