Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

ich bearbeite von VB aus eine Excel-Datei (lesen und schreiben).

Mit Hilfe eines Buttons soll ein VB Formular UND das im Hintergrund (nicht sichtbare) Excel geschlossen werden.

Im Taskmanager sehe ich den Prozess trotz diesen Codes immernoch:

Public Sub EClose()

Excel.ActiveWorkbook.Save

Excel.Quit

Set Excel = Nothing

End Sub

Wieso wird der Prozess nicht geschlossen????

Was kann ich machen???

Gruß

Geschrieben

Vielleicht wird nur eine MessageBox angezeigt. Mach Excel doch mal testweise sichtbar, vielleicht erkennt man dann, woran es liegt.

Mit

Excel.DisplayAlerts = False

müsstest du MessageBoxen unterdrücken können.

Geschrieben

Hab ich mal ausprobiert an den Boxen liegt es nicht.

VB "killt" den Prozess erst, wenn ich meine VB Anwendung auch geschlossen habe...

Das ist dumm, denn wenn ich eine weitere Excel-Datei während es Programmablaufes einlesen will, überschreibt er meine Dateien gegenseitig...:rolleyes:

Geschrieben

Alles probiert...

Aber jetzt bekomme ich keine Fehlermeldungen mehr.

Für alle die das Problem auch haben:

Wenn ihr mit Excel arbeitet, nehmt das Excel-Objekt als Verweis auf Excel und kreiert nicht eigene Objekte!

Große Fehlerquelle (Excel wurde X-mal geöffnet, etc...)!!!

Nachdem ich die eigenen Objekte entfernt hatte, ist zwar der Prozess noch da, aber mehere geöffnete Excel Dateien blockieren oder überschreiben sich nicht gegenseitig!

In diversen Foren habe ich noch Alternative Vorschläge gesehen, die laut Aussage von anderen Usern mit zig API-Funktionen arbeiten. Ferner braucht man dazu eine Task ID, um den Task abschiessen zu können. Und um die ID zu bekommen, bedarf es einer weiteren Programmierung....

Ist also viel zu kompliziert!!!

Güße

Gany

Geschrieben

also bei mir funktioert es ohne Problem das ich Excel als Object benutzte.

Ich hab zum schliessen diesen Code

objExcel.ActiveWorkbook.SaveAs strFilePath, 11 ' xlDBF4 = 11

'** Keine Meldung beim Schließen anzeigen

objExcel.ActiveWindow.Close

'** objExcel schließen

objExcel.Quit

Set objExcel = Nothing

gruß

guido

Geschrieben

Genau diesen Code hatte ich auch... Funktionierte nicht.

Der Code war absolut korrekt. Es scheint ein internes VB-Windows Problem zu sein.

Es liegt wohl anscheinend an der Windows Version, Service Pack u.ä....

Geschrieben

Hi habe ein sehr ähnliches Prog geschrieben. ... Excel öffnen, bearbeiten, speichern, schließen, ...

Set MyExcel = CreateObject("Excel.Application")

'late bindung, um Probleme mit den Dll's zu verhindern

Dim MyWB As Object

Set MyWB = MyExcel.Workbooks.Open(mFilename, True)

'mFilename is der Filename (wäre jetzt keiner drauf gekommen, oder)

'BEARBEITUNG DER DATEI !!

MyWB.close (True)

Set MyWB = Nothing

MyExcel.Quit

Set MyExcel = Nothing

Ich hatte das Prob auch, kann daran liegen, dass man den set ... = Nothing nicht durchläuft.

Matze

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...