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