Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
940to944
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
940to944
940to944
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro löschen - Teil 2

Makro löschen - Teil 2
16.01.2008 10:19:18
mtremer
Hallo Excelfreunde,
zuerst muss ich mich wegen meiner Ungeduld entschuldigen. Rudi war so freundlich und hat mich auch die richtige Richtung gebracht. Leider ist mein Problem aber noch nicht gelöst.
Sein Tip ist folgender Code gewesen:
ClassModule: Tabelle3

Private Sub CommandButton1_Click()
Worksheets("Tabelle1").Copy
ActiveSheet.OLEObjects.Delete
With ActiveSheet.UsedRange
.Value = .Value
End With
With ActiveSheet.Parent.VBProject.VBComponents(ActiveSheet.CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
On Error GoTo ERRORHANDLER
ActiveWorkbook.SaveAs Range("B1").Value & "\test.xls"
Exit Sub
ERRORHANDLER:
MsgBox "Die Datei konnte nicht gespeichert werden!"
End Sub


Seinen Tip möchte ich in meinen Code irgendwie einbauen:


Private Sub CommandButton1_Click()
Dim Nachricht As Object, OutApp As Object
Set OutApp = CreateObject("Outlook.Application")
Dim AWS As String
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.SentOnBehalfOfName = "kundenservice@xx.de"
.To = Sheets("Tabelle1").Range("B12")
.CC = Sheets("Tabelle1").Range("B13")
.Subject = "Betreffzeile"
.Attachments.Add ActiveWorkbook.FullName
strTxt = "Sehr geehrte Damen und Herren," & "
.Htmlbody = strTxt
.Display
End With
ActiveWorkbook.Save
ActiveWorkbook.Close
If Workbooks.Count = 1 Then Application.Quit
End Sub


Leider kenne ich mich in VBA noch nicht gut genug aus, dass ich das beides selber kombinieren kann.
Dazu bitte ich um Eure Hilfe.
Das Ergebnis soll ein Code sein, der nach Schreiben der E-Mail Die Codes innerhalb dieses Arbeitsblattes löscht. Dies kann auch gerne unwiderruflich sein, da dieses Arbeitsblatt danach nicht mehr verwendet wird.
Danke.
Viele Grüße
Marco

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

Betreff
Datum
Anwender
Anzeige
AW: Makro löschen - Teil 2
17.01.2008 09:49:00
DirkP
Hi - verstehe ich das richtig ? .. Mit meinen Worten:
Du möchtest eine Excel-Datei haben, aus der heraus Du eine Email versendest, die diese Exceldatei auch als Anhang hat. Allerdings soll die angehängte Excel-Datei dann keinen Makro-Code mehr enthalten ?
Was wohl nicht geht, ist den laufenden Code aus der Mappe zu entfernen ... wenn ich das richtig verstanden habe müsste man zunächst
a) die aktuelle Arbeitsmappe unter einem anderen Namen speichern
b) die frisch gespeicherte erneut öffnen, makro-code entfernen und wieder schließen (mit speichern)
c) die so überarbeitete xls-Datei als Anhang anhängen
Grüße

Anzeige
AW: Makro löschen - Teil 2
17.01.2008 11:26:57
mtremer
Hi Dirk,
genau richtig erfasst. Danke für die Übersetzung. Hatte leider vergessen, mein Grundvorhaben zu schildern ;-)
Mein Ziel ist es, eine Excel-Datei ohne Makro-Code an die Mail anzuhängen. Ob man den laufenden Code löscht (dann würde der Rest darin aber nicht mehr ausgeführt werden), oder die Datei neu speichert, öffnet, den Code löscht, nochmal speichert und dann der Mail anhängt und dann wieder löscht, ist mir eigentlich egal. Wichtig ist nur, dass sie ohne Code versendet wird, und die Daten in den Zellen jederzeit abrufbar sind.
Hast Du dafür eine Lösung? Ich kann bisher VBA nur aus Euren Antworten zusammenschustern. Ahnung habe ich wenig...
Danke.
Viele Grüße
Marco

Anzeige
AW: Makro löschen - Teil 2
18.01.2008 08:42:38
DirkP
Hallo Marco,
Die Befehlsfolge grob umrissen - die Lösungen der Mitschreiber zum Thema "Makrocode löschen" musst Du dann in die benannte Unterroutine einbauen, ok ?

Public Sub MappeOhneMakroVersenden()
Dim TempDateiname as string
Dim Wb as workbook
TempDateiname = "c:\Temp\SendeMappe.xls"
ThisWorkbook.SaveAs (TempDateiname)
Set wb = Workbooks.open (TempDateiname)
call MakroCodeLöschen(wb)
wb.save
wb.close
Call WorkbookVersenden(TempDateiname)
'Löschen der temporären Datei
kill (Tempdateiname)
End Sub



Public Sub MakroCodeLöschen (Wb as workbook)
'Hier nun den Code einfügen, der den Makrocode entfernt ...
'Wb ist das (bereits geöffnete) Workbook in dem das passieren soll
End Sub



Public Sub WorkbookVersenden (Dateiname as string)
'Hier nun den Code einfügen, der den übergebenen Dateinamen
' als Attachment zu Deiner Mail anfügt
End Sub


Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige