Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
152to156
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
152to156
152to156
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Excel aus VBA beenden funktioniert nicht

Excel aus VBA beenden funktioniert nicht
28.08.2002 15:04:50
Burkhard
Hallo Leute!

Ich habe das folgende Problem, dass Excel bei mir immer im Hintergrund aktiv bleibt, obwohl ich es aus VBA schließe. Es verschwindet erst dann aus dem Taskmanager, wenn ich mein VBA-Tool beende.

Meine Frage ist nun zunächst, welches der richtige Weg zum schließen ist, denn beide Versionen funktionieren nicht, sobald ich ein Diagramm fülle, siehe Bsp. D.h. ohne die Diagrammschleife, verschwindet auch Excel im zweiten Fall. Wenn jemand einen Tip dazu hätte, wäre ich sehr dankbar.

Viele Grüße an alle aus diesem super Forum

Burkhard

Mit dieser Version funktioniert es mit/ohne Diagramm Routine nicht:
****************************************************************
Dim Ex As New Excel.Application
Set Ex = Excel.Application
Ex.Workbooks.Open FileName:="C:\XYZ\XZY.xls"

MsgBox "Habe Excel geöffnet!"

Ex.ActiveWorkbook.Activate
Ex.Sheets("Projekte").Activate

Ex.Application.DisplayAlerts = False
Ex.ActiveWorkbook.SaveAs FileName:="C:\XYZ\WXZY.xls"

Ex.ActiveWorkbook.Close 'SaveChanges:=False
Ex.Application.Quit
Set Ex = Nothing
****************************************************************
Dim Ex As New Excel.Application
Set Ex = Excel.Application
Ex.Workbooks.Open FileName:="C:\XYZ\XZY.xls"

MsgBox "Habe Excel geöffnet!"

Ex.ActiveWorkbook.Activate
Ex.Sheets("Projekte").Activate

Ex.Sheets("XY-Diagramm").Select
Ex.ActiveChart.SeriesCollection(1).Select
Ex.ActiveChart.SeriesCollection(1).Delete

'Diese Schleife ist ein bisschen abgekürzt

Do Until Ex.Sheets("Projekte").Range(Zeilenzaehler).Value = ""

Ex.ActiveChart.SeriesCollection.NewSeries
Ex.ActiveChart.SeriesCollection(DR).XValues = Sheets("Projekte").Range(BN) 'Spalte B
Ex.ActiveChart.SeriesCollection(DR).Values = Sheets("Projekte").Range(BR) 'Spalte C
Ex.ActiveChart.SeriesCollection(DR).Name = Sheets("Projekte").Range(BPN) 'Spalte A
Ex.ActiveChart.ChartType = xlXYScatter

z = z + 1 'Zähler für die Sheet-Reihen
DR = DR + 1 'Zähler für DiagrammReihe = DR

BPN = "B" & z 'BubbleProjektname
BN = "C" & z 'BubbleNutzen
BR = "D" & z 'BubbleRisiko
BKV = "E" & z 'BubbleKostenVolumen

Loop

Ex.Application.DisplayAlerts = False
Ex.ActiveWorkbook.SaveAs FileName:="C:\XYZ\WXZY.xls"

Ex.ActiveWorkbook.Close 'SaveChanges:=False
Ex.Application.Quit
Set Ex = Nothing
****************************************************************

In dieser Version funktioniert es nur ohne Diagramm-Routine!!!
****************************************************************
Dim Ex As Object
Set Ex = CreateObject("excel.application")

Ex.Workbooks.Open FileName:="C:\XYZ\WXZY.xls"
Ex.Visible = True
ExNr = Ex.Sheets.Count
MsgBox "Anzahl der Ex-Sheets ist: " & ExNr

Ex.Application.DisplayAlerts = False
Ex.ActiveWorkbook.SaveAs FileName:="C:\Daten\Burkhard\Uni\Diplomarbeit\Excel\BS1.xls"
Ex.Application.DisplayAlerts = True
Ex.ActiveWorkbook.Close
Ex.Quit
Set Ex = Nothing

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Excel aus VBA beenden funktioniert nicht
28.08.2002 16:05:31
Axel
Hallo,

laß in den beiden ersten Prozeduren die überflüssige zweite Anweisung (set Ex = Excel.Application) raus.

In der ersten Anweisung wird ja bereits eine neue Excel-Instanz durch das Schlüsselwort New erstellt.

Durch die zweite Anweisung wird ein weitere Instanz ins Leben gerufen. Da diese aber derselben Objektvariablen Ex zugewiesen wird, kannst Du auf die erste Instanz nicht mehr zugreifen und diese somit auch nicht mehr terminieren.

Gruß
Axel

Re: Excel aus VBA beenden funktioniert nicht
28.08.2002 17:41:34
Burkhard
Hallo Axel!

Danke zunächst mal für deine schnelle Antwort, aber leider funktioniert auch dies nicht richtig! Es funktioniert nur, wenn ich Excel aufrufe und wieder schließe.

Sobald ich aber an mein Diagramm gehe d.h. eine Schleife zum befüllen des Diagramms einsetze, bleibt Excel offen und das obwohl ich ja keine neue Instanz aufmache. Excel verschwindet erst dann wieder, wenn ich mein Tool schließe!

Folgende zwei Anweisungen habe ich dabei ausprobiert (Win2000/Office XP):

Dim Ex As New Excel.Application

und

Dim Ex As Object
Set Ex = CreateObject("excel.application")

jeweils mit und ohne Diagramm

folgendes habe ich auch getestet, aber da schreibt du ja, dass das nicht funktionieren kann.

Dim Ex As New Excel.Application
Set Ex = Excel.Application

Also deshalb noch mal die Frage, was mache ich falsch, denn es funktioniert ja ohne Diagramm?

Gruß
Burkhard

Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige