Datei schließen über VBA
09.05.2005 18:08:28
Torsten
mit folgendem Code kopiere ich eine Datei unter einem anderen Namen und öffne die neue Datei anschließend um sie weiter zu bearbeiten. Nach dem e-mail-Versand dieser Datei über LotusNotes möchte ich diese Datei wieder schließen und dann Löschen. Es funktioniert alles einwandfrei (auch das Mail wird versandt), bis es zum Schließen dieser neuen Datei kommt. Hier bricht Excel komplett ab. Ich habe bereits verschiedene Versuche unternommen, komme aber leider nicht weiter:
Private Sub cmb_SEND_Click()
Dim wb As Workbook
ThisWorkbook.SaveCopyAs "C:\Dokumente und Einstellungen\IT_Budget_2005.xls"
Application.DisplayAlerts = False
Workbooks.Open "C:\Dokumente und Einstellungen\IT_Budget_2005.xls"
With ActiveWorkbook.Sheets("ENTBUDIT").Range("C1:D5")
.Copy
.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End With
With ActiveWorkbook
.Sheets("SETT").Delete
.Sheets("START").Delete
End With
Application.DisplayAlerts = True
Dim wks As Worksheet
Dim cb As Object
Set wks = ActiveSheet
'Löschen des Codes aus "Diese Arbeitsmappe"
With ActiveWorkbook.VBProject
With .VBComponents("DieseArbeitsmappe").CodeModule
.DeleteLines 1, .CountOfLines
End With
End With
'Löschen des VBA-Codes aus dem aktiven WS
With ActiveWorkbook.VBProject _
.VBComponents(wks.CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
'Löschen aller cmb_Buttons im aktiven WS
For Each cb In wks.OLEObjects
If TypeName(cb.Object) = "CommandButton" Then
cb.Delete
End If
Next cb
'Löscht Module im aktiven WB
With ActiveWorkbook.VBProject
.VBComponents.Remove .VBComponents("Modul1")
.VBComponents.Remove .VBComponents("Modul2")
End With
ActiveWorkbook.Sheets("ENTBUDIT").Range("A1").Select
ActiveWorkbook.Save
Dim dummy As Variant
Dim irow As Integer
dummy = SendNotesMail("IT_Bedarf 2005 / " & Sheets("ENTBUDIT").Range("C5").Value _
& " / " & Sheets("ENTBUDIT").Range("C4").Value, _
"C:\Dokumente und Einstellungen\IT_Budget_2005.xls", "TorstenK@TEST.de", "", True)
ActiveWorkbook.Close
Kill "C:\Dokumente und Einstellungen\IT_Budget_2005.xls"
MsgBox ("Die Datei wurde gesendet")
Application.ScreenUpdating = True
Else
End If
End Sub
Könnt Ihr mir helfen und sagen, woran es im Code noch hapert? Excel bricht ab an der Stelle: ActiveWorkbook.Close mit "Index außerhalb des gültigen Bereichs"
ab. Für Eure Hilfe im voraus besten Dank.
Gruß
Torsten