Excelzugriff autom. Überschreiben der Datei

Hallo
habe soweit alles über Makros mit dem Zugriff auf eine Datei hinbekommen.
Problem ist nur noch, falls die ExcelDatei schon existiert,
erhalte ich eine Aufforderung, ob ich die Datei überschreiben möchte.
Wie kann ich diese Frage unterdrücken (ich will Sie ja überschreiben).
Meine Routine an der Stelle lautet:

ActiveWorkbook.SaveAs Filename:= _
Vergleich10 _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False

ActiveWorkbook.Close SaveChanges:=True

Wobei Vergleich10 den Pafad und Dateinamen beinhaltet.

Andere Frage, wenn ich die Datei erzeugt habe, habe ich immer noch keinen Zugriff drauf, solange mein Programm noch läuft, wie kann man das Abstellen???
Und nochwas, wenn ich unten mein Objekt OXL (ExcelApplication) am Programmende auf Nothing setze und mein Programm dann nochmal durchlaufen lasse ohne es vorher beendet zu haben, passiert gar nix mit Excel und der Erzeugung der Daten in Excel.

Ich habe das OXL Global deklariert. Liegt hier das Problem??

OXL.Workbooks.Close
OXL.Quit
'Set OXL = Nothing

Mfg Werner

Hallo,

so oder so aehnlich hatte ich vor einiger Zeit auch Probleme, allerdings aus einer Access-Anwendung heraus. Damals bin ich dazu uebergegangen, die Aufrufe bzw. das Oeffnen der EXCEL-Anwendung und der eigentlichen Datei etwas anders anzulegen, und dann traten die Probleme nicht mehr auf.
Folgende Vorgehensweise:

===================================================
Dim ExcelApp As Object ’ Declaration als Object, nicht EXCEL-Application, kann Global oder Local erfolgen

Set ExcelApp = CreateObject(„excel.application“) ’ Hier ezeugen von EXCEL-App

Dim NewMap As Object ’ zum Arbeiten mit aktivem Workbook
Set NewMap = ExcelApp.Workbooks.Open(filename)

NewMap.Save ’ explicites Speichern des Workbooks
NewMap.Close SaveChanges:=True ’ Workbook schliessen ohne Nachfrage
ExcelApp.Quit ’ EXCEL zu
set ExcelApp = nothing ’ Objekt zerstoeren

Hope this helps

Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo
danke, hört sich ähnlich an wie meine Lösung nur etwas anders gestrickt.
Werds auprobieren.

Mfg Werner

Hi Nirwana,

Problem ist nur noch, falls die ExcelDatei schon existiert,
erhalte ich eine Aufforderung, ob ich die Datei überschreiben
möchte.
Wie kann ich diese Frage unterdrücken (ich will Sie ja
überschreiben).

Vorher im Pseudocode: If exixt abc.xls then del abc.xls
oder
application.displayalerts=false
k.A.

Andere Frage, wenn ich die Datei erzeugt habe, habe ich immer
noch keinen Zugriff drauf, solange mein Programm noch läuft,
wie kann man das Abstellen???

Verstehe ich nicht. wenn du sie erzeugt hast gibt es die Datei und du hast Zugriff, außer du hast mit Open „dateiXy“ usw eine datei erzeugt, aber es kam noch kein Close Befehl.

Und nochwas, wenn ich unten mein Objekt OXL (ExcelApplication)
am Programmende auf Nothing setze und mein Programm dann
nochmal durchlaufen lasse ohne es vorher beendet zu haben,
passiert gar nix mit Excel und der Erzeugung der Daten in
Excel.

Sorry,
da weiß ich gar nix. Ich lese nur, du setzt auf „nothing“, beendest das Programm nicht, also isses noch auf Nothing irgendwie, naja wärs auch wenn du beendet hättest :smile:.
Naja, mach halt das übliche, Haltepunkte und F8 wenn Excel nicht reagiert, dann schauen wir weiter.
Gruß
Reinhard

das wars und das wars noch nicht
Hallo
hatte es jetzt auch gelesen, es war application.displayalerts=false. Damit wird die Datei automatisch überschrieben.

Das andere Problem mit dem Zugriff ist folgendes, ich nehme eine Exceldatei als Vorlage, öffne die und speichere sie unter anderem Namen ab. Die Vorlagendatei meckert dann aber immer noch.

Ist sie damit nicht geschlossen, wenn ich sie unter anderem Namen abspeichere???

Mfg Werner

noch nicht ganz glücklich
Hi,
naja das wars nicht ganz, kann sein, das deine Version funktioniert,
ich habs ausprobiert, Problem bleibt immer noch, wenn ich das ganze 2mal anstosse, Datei öffnen, reinschreiben, speichern unter, passiert beim 2. mal gar nix in der Datei. Das Programm läuft dann sehr schnell durch.

Mfg Werner

Hallo Werner,

ist beim 2. durchlauf auch sichergestellt, das die Anweisungen
Set ExcelApp = CreateObject(„excel.application“) ’
Set NewMap = ExcelApp.Workbooks.Open(filename)

auch wirklich durchlaufen werden?

Step doch mal mit F8 durch die Funktion und achte darauf, das EXCEL sichtbar ist, dann muesstest du sehen was wirklich passiert.

Tschau
Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]