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

VBA-Codes via VBA löschen

VBA-Codes via VBA löschen
09.08.2004 10:15:05
00011011
Hallo.
Ich habe mit meinen mageren VBA-Kenntnissen ein dynamisches Formular für meinen Betrieb erstellt. In diesem Formular werden über Userforms ca. 2500 Werte abgefragt und entsprechend den Eingaben das Formular in der Druckversion geändert (nicht genutzte Zeilen werden ausgeblendet usw.).
Sobald alle Werte eingegeben und durch den Benutzer bestätigt wurden, soll das Formular an einen Email-Verteiler verschickt werden. Hierzu habe ich mir den entsprechenden Code von Ramses' Homepage kopiert. Da die Excel-Datei nun mehr als 3,5 MB hat, das Formular (das Excel-Sheet) aber maximal 500 KB, wäre es eine gute Idee, alle VBA-Codes, außer denen in DieseArbeitsmappe und dem Versendecode, zu löschen, um die Datei zu verkleinern.
Ich habe hier bewußt eine Auflistung meiner Prozeduren vermieden, da diese Liste sehr lange sein würde. Bei der Plazierung des Versendecodes bin ich flexibel und bin für alle Vorschläge offen und dankbar.
Gruß aus Köln
Christian

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Codes via VBA löschen
Dr.
Hallo Christian,
wäre es nicht einfacher, das Sheet automatisch in eine neue Datei zu kopieren (evtl. sogar nur als Werte) und dann zu versenden? Das ist sicher stabiler als die Codes zu löschen.
AW: VBA-Codes via VBA löschen
09.08.2004 10:23:47
00011011
Nur die Werte zu kopieren reicht leider nicht, da sich bestimmte Rahmen und ähnliche Spielereien in diesem Formular befinden, die sich nicht stabil kopieren lassen.
Das ganze Sheet zu kopieren bzw. zu verschieben wäre eine gute Idee. Nur soweit reichen meine Kenntnisse nicht aus. Wie müßte der Code aussehen? Desweiteren stellt sich die Frage, wie ich in der neuen Excel-Datei den gleichen Code in DieseArbeitsmappe stehen habe, wie in der Ausgangsdatei? Diese Frage bezieht sich dann auch auf die Versende-Prozedur.
Wenn Du mir da weiterhelfen könntest, wäre ich Dir sehr dankbar.
Gruß aus Köln
Christian
Anzeige
AW: VBA-Codes via VBA löschen
09.08.2004 10:38:02
HermannZ
Hallo Christian
Frage was verstehst du unter ---wie ich in der neuen Excel-Datei den gleichen Code in DieseArbeitsmappe stehen habe, wie in der Ausgangsdatei? ---
Wie schon gesagt wenn du das einzelne Sheet als neue Datei abspeicherst wird alles was zum Sheet gehört mitgenommen der Rest entfällt.
PS. dafür hätte ich was
Gruß Hermann
AW: VBA-Codes via VBA löschen
09.08.2004 11:00:10
00011011
Um Deine Frage und Deine Erklärung aufzugreifen:
Wenn ich dieses einzelne Sheet in eine neue Mappe kopiere / verschiebe, wird zwar alles, was direkt mit diesem Sheet in Verbindung steht, mitkopiert / -verschoben, jedoch wird der Code, welcher in DieseArbeitsmappe (in Visual Basic) steht nicht mitkopiert.
Das Problem ist nun, daß in DieseArbeitsmappe bei meiner ursprünglichen Datei beim Öffnen die Ansicht so formatiert wird, daß keine weiteren Änderungen vorgenommen werden können bzw. die Ansicht vereinfacht wird.
Dieser Code ist allerdings erforderlich. Wie kann ich also diesen Code in die neue Mappe an gleiche Stelle kopieren?
Wenn ich dieses Sheet nun kopiert habe, wie kann ich es per Versende-Code verschicken, wenn der Code noch in meiner alten Mappe liegt? Oder muß der Code in dem Sheet verankert sein?
Für Deine Hilfe bin ich sehr dankbar.
Anzeige
AW: VBA-Codes via VBA löschen
09.08.2004 11:28:41
HermannZ
Hallo Christian
zu 1.
natürlich must du alle Funktionen die du in der ARBEITSMAPPE hast und die dieses Sheet
betreffen mit dem Sheet verankern.d.H. im Codeteil des Tabellenblattes.sonst werden ja die gewünschten Einstellungen nicht mitgenommen.Das Blatt wird ja als eigenständige Datei ...xls abgespeichert,wobei der Name des Tabellenblattes der Name der neuen Datei ist.
Zum Beispiel:

Sub Blattspeichern()
'Macro zum Speichern eines Blattes, einer Arbeitsmappe, als Datei.xls
'wobei der Tabellenblattname der Dateiname.xls wird.
On Error Resume Next
Application.ScreenUpdating = False
pfad = InputBox("Geben Sie den Pfad ein, in dem das Blatt gespeichert werden soll!", , "C:\Dokumente und Einstellungen\herzin\Eigene Dateien\")'diesen Pfad anpassen
Select Case Right(pfad, 1)
Case ""
GoTo ErrorHandler
Case Is <> "\"
pfad = pfad & "\"
End Select
ActiveSheet.Copy
On Error GoTo ErrorHandler
ActiveWorkbook.SaveAs Filename:=pfad & ActiveSheet.Name
ActiveWorkbook.Close SaveChanges:=False
Exit Sub
ErrorHandler:
Select Case Err.Number
Case 1004
MsgBox ("Speichervorgang des Blattes wurde abgebrochen")
ActiveWorkbook.Close SaveChanges:=False
Case Else
End Select
Application.ScreenUpdating = True
End Sub

das so abgespeicherte Sheet läst sich verschieken wie jede ander Datei auch.
Gruß hermann
Anzeige
AW: VBA-Codes via VBA löschen
09.08.2004 15:20:16
00011011
Vielen Dank.
Ich werde das gleich mal so probieren, wie Du es vorschlägst.
Gruß aus dem sonnigen Köln
Christian
AW: VBA-Codes via VBA löschen
Dr.
Nun, mit
ActiveSheet.Copy überrägst Du schon mal das Formularblatt.
Das kann dann in Zweifel mit Workbook.SaveAs gespeichert werden.
Im Anscgluss startest Du dann die mail-Routine und ballerst das Teil raus. :-)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige