Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Excel aus dem Speicher werfen
#1
heje excelfreunde,

mit dem nachfolgenden code versuche ich Daten aus einer "geschlossenen" Tabelle, hier wbQuelldatei, zu importieren. warum wird nach dem durchlauf die "geschlossenen" Tabelle mit der anweisung "wbQuelldatei.Close SaveChanges:=False" nicht aus dem speicher entfernt. die geschlossene Datei, respektive excel.exe * 32, muss z.b. mit dem task-Manager entfernt werden.
wie kann ich dieses Problem elegand lösen... 

die select case - Anweisung funktioniert, ist aber eigendlich nicht von belang....


Code:
Public Sub DatenAusTabelleImportierenTabUebergabe(Arg1 As String, Arg2 As Byte)
Dim objExcel As New Excel.Application
Dim wbQuelldatei As Workbook
Dim wbZieldatei As Workbook
Dim wsQuellBlatt As Worksheet
Dim wsZielBlatt As Worksheet
Dim strImpDatei As String
Dim strImpDateiPfad As String
Dim strTabName As String
   On Error GoTo Fehler
   Set wbQuelldatei = objExcel.Workbooks.Open(Arg1)
   Set wbZieldatei = ThisWorkbook
   intRwert = InStrRev(Arg1, "\")                                 'letztes "\" in DateiNamePfad. Arg1 ist vollständige PfadNameAngabe
   strImpDateiPfad = Left(Arg1, intRwert)                         'DateiPfad
   strImpDatei = Mid(Arg1, intRwert + 1)                          'DateiName
  
   If msgModul.Meldung005(strImpDatei) = True Then
      wbQuelldatei.Close SaveChanges:=False
      Set wbZieldatei = Nothing
      Set wbQuelldatei = Nothing
      Set objExcel = Nothing
      Application.StatusBar = ""
      Exit Sub                                                    'Abbruch, wenn die Quelldatei selbst ausgewählt wird
   End If
  
   Application.StatusBar = "Die Quelldatei wird zum Datenimport geöffnet..."
  
   Select Case Arg2
 .
 .
 .  
      Case Else
         Call msgModul.Meldung006
   End Select
  
   Application.StatusBar = ""
   wbQuelldatei.Close SaveChanges:=False
   Set wbZieldatei = Nothing
   Set wbQuelldatei = Nothing
   Set wsQuellBlatt = Nothing
   Set wsZielBlatt = Nothing
   Set objExcel = Nothing
   On Error GoTo 0
   Exit Sub
  
Fehler:
   If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & " " & Err.Description
   'Resume Next
End Sub
Vielen Dank
--Janosch
                                                     
Excel  2019 (64bit)  Win 10 Pro (64bit)                              
Antworten Top
#2
Hallo Janosch,

vielleicht mit
objExcel.Quit
Gruß Uwe
Antworten Top
#3
heje excelfreunde, kuwer,

das einfügen von "objExcel.Quit" bewirkt keine änderung...
guter rat ist wohl teuer...
Vielen Dank
--Janosch
                                                     
Excel  2019 (64bit)  Win 10 Pro (64bit)                              
Antworten Top
#4
[off topic, oder auch nicht]
Das Problem gibt es bereits seit xl-Generationen.
Binde mal einen Verweis auf ein ein Add-In ein und freue Dich, wenn das Child Tschüss sagt.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#5
heje excelfreunde, rpp63,

vielen dank für die antwort, aber so richtig hilft sie mir nicht weiter. vielleicht etwas konkreter...
Vielen Dank
--Janosch
                                                     
Excel  2019 (64bit)  Win 10 Pro (64bit)                              
Antworten Top
#6
Hi,

wo hast Du das objExcel.Quit eingesetzt?
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#7
heje excelfreunde, BoskoBiati


anstelle von:
Code:
wbQuelldatei.Close SaveChanges:=False
Vielen Dank
--Janosch
                                                     
Excel  2019 (64bit)  Win 10 Pro (64bit)                              
Antworten Top
#8
'Elephant' lösen mit:


Code:
Public Sub DatenAusTabelleImportierenTabUebergabe(Arg1 As String, Arg2 As Byte)
   with getobject(Arg1)
       - - - -  deine Code
       .close 0
   end with
end sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#9
Hallo Janosh,

diesen Teil:


Code:
  wbQuelldatei.Close SaveChanges:=False
  Set wbZieldatei = Nothing
  Set wbQuelldatei = Nothing
  Set wsQuellBlatt = Nothing
  Set wsZielBlatt = Nothing
  Set objExcel = Nothing


würde ich nach der Sprungmarke

Code:
fehler:


einfügen. Denn, wenn ein Fehler auftritt, werden diese Zeilen alle nicht ausgeführt.
Gruß Atilla
Antworten Top
#10
Hallo,

von Bedeutung könnte auch die richtige Reihenfolge des Aufräumens sein:

   Application.StatusBar = ""
  Set wsQuellBlatt = Nothing
  wbQuelldatei.Close SaveChanges:=False
  Set wbQuelldatei = Nothing
  objExcel.Quit
  Set objExcel = Nothing
  Set wsZielBlatt = Nothing
  Set wbZieldatei = Nothing
  On Error GoTo 0
  Exit Sub

Gruß Uwe
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste