Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1152to1156
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
Mit VBA Code löschen und Datei speichern
Uppe
Hallo Experten,
ich möchte das Blatt 2 meiner Datei ohne Code und Userforms etc speichern.
Mein Bisheriger Code sieht so aus:
Sub Speichern()
vntPathAndFile = Application.GetSaveAsFilename( _
InitialFileName:=strPath & "\" & strDateiname & ".xls", Title:="Speichern als")
strOriginal = ThisWorkbook.FullName
ActiveWorkbook.SaveAs vntPathAndFile
'Blätter löschen
For Each ws In ActiveWorkbook.Worksheets
If ws.Name  "Blatt2" Then
Application.DisplayAlerts = False
ws.Delete
Application.DisplayAlerts = True
End If
Next ws
'Makros löschen
With ActiveWorkbook.VBProject
For Each objVBComponents In .VBComponents
Select Case objVBComponents.Type
Case 1, 2, 3 'Module, Klasssenmodule, Userforms
If objVBComponents.Name  "MdlLöschen" Then
.VBComponents.Remove .VBComponents(objVBComponents.Name)
End If
Case 100 'Workbook, Sheets
With objVBComponents.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next
End With
ActiveWorkbook.Save
Workbooks.Open strOriginal
End If
End Sub
Nun zu meinem Problem: Der Code wird gelöscht, aber nicht vor dem zweiten Speichern!?
Wenn ich die Datei mit dem Blatt2 schließen möchte, werde ich gefragt, ob ich die Datei speichern möchte. Wenn ich das mache ist alles so wie gewünscht: in der neuen Datei ist Blatt2 ohne jeden Code.
Wenn ich aber nicht nochmal von Hand speichere, ist in der neuen Datei Blatt2 (alle anderen Blätter sind gelöscht), aber der vollständige Code und alle Userforms etc. sind noch vorhanden.
Wie kann ich das Blatt2 automatisch ohne Code speichern?
Danke und Gruß
Uppe
PS: Ich kann das Blatt nicht als Kopie in einer anderen Arbeitsmappe speichern, da mir sonst die Informationen aus dem Mailkopf verloren gehen.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Mit VBA Code löschen und Datei speichern
20.04.2010 14:50:15
fcs
Hallo Uppe,
es ist nicht so besonders gut, wenn ein Makro ein VBA-Projekt löschen soll, von dem es ein Bestandteil ist.
Arbeite mit SaveCopyAs, um eine Kopie der aktiven Datei zu erstellen. Öffne diese dann um das Blatt2 in eine eigene Datei ohne Makros zu überführen.
Gruß
Franz
Sub Speichern()
vntPathAndFile = Application.GetSaveAsFilename( _
InitialFileName:=strPath & "\" & strDateiname & ".xls", Title:="Speichern als")
If vntPathAndFile  False Then
ActiveWorkbook.SaveCopyAs vntPathAndFile
Workbooks.Open vntPathAndFile
'Blätter löschen
For Each ws In ActiveWorkbook.Worksheets
If ws.Name  "Blatt2" Then
Application.DisplayAlerts = False
ws.Delete
Application.DisplayAlerts = True
End If
Next ws
'Makros löschen
With ActiveWorkbook.VBProject
For Each objVBComponents In .VBComponents
Select Case objVBComponents.Type
Case 1, 2, 3 'Module, Klasssenmodule, Userforms
If objVBComponents.Name  "MdlLöschen" Then
.VBComponents.Remove .VBComponents(objVBComponents.Name)
End If
Case 100 'Workbook, Sheets
With objVBComponents.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next
End With
ActiveWorkbook.Save
ThisWorkbook.Activate
End If
End Sub

Anzeige
AW: Mit VBA Code löschen und Datei speichern
20.04.2010 16:35:06
Uppe
Hallo Franz,
das geht so eben leider nicht (wie ich bereits in meinem ersten Posting geschrieben habe), da ich die Informationen aus dem Mailkopf verliere.
Mit ActiveWorkbook.EnvelopeVisible = True und ActiveSheet.MailEnvelope.Item... gebe ich die entsprechenden Informationen an, die dann aber bei savecopyas verloren gehen.
Oder hast Du eine Idee wie ich die Informationen beim Kopieren mitnehmen kann?
Trotzdem Danke.
Gruß Uppe
AW: Mit VBA Code löschen und Datei speichern
21.04.2010 07:30:56
fcs
Hallo Uppe,
da kann ich leider nicht weiterhelfen. Mit dem Mailenvelope arbeite ich nicht und zumindest unter Excel 2007 hatte ich Schwierigkeiten, die eingegeben Informationen zu retten um sie dann der Kopie wieder zuzuweisen.
Gruß
Franz
Anzeige

328 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige