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

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...