Anzeige
Archiv - Navigation
620to624
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
620to624
620to624
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Email aus Excel

Email aus Excel
06.06.2005 11:14:08
Jakob
So,
ich habe mir den VBA-Code mit Hilfe Eurer Unterstützung und Beispielen aus anderen Excel-Seiten zusammengeschustert. Das klappt alles soweit und er führt auch alle Schritte aus (Formeln und Tabellenblätter werden gelöscht). In der Datei die er dann sendet sind aber die Formeln und Tabellenblätter wieder drin. Hier der Code.
Vielen Dank im Voraus.
J. Freitag

Sub ÄsthetikUmsatz_Als_eBrief()
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.Run "DatumUeberInputbox"
Application.Run "ÄsthetikBlaetterLoeschen"
Application.Run "Excel_Workbook_via_Outlook_Senden"
Application.DisplayAlerts = False
ActiveWindow.Close
Application.DisplayAlerts = True
End Sub


Sub DatumUeberInputbox()
Dim wert01 As String
wert01 = InputBox("Datum", "Bitte geben Sie das Datum ein")
Range("a1").Value = "Tagesumsatz " & wert01
End Sub


Sub ÄsthetikBlaetterLoeschen()
Dim sh As Object
Application.DisplayAlerts = False
For Each sh In Sheets
If Not sh.Name Like "TU ÄS" Then sh.Delete
Next
Application.DisplayAlerts = True
End Sub


Sub Excel_Workbook_via_Outlook_Senden()
Dim Nachricht As Object, OutApp As Object
Set OutApp = CreateObject("Outlook.Application")
Dim AWS As String
'Aktive Arbeitsmappe wird als Mail gesendet
AWS = ActiveWorkbook.FullName
InitializeOutlook = True
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.To = "Wer@internetanbieter.de"
.CC = "nochjemand@internetanbieter.de"
.BCC = ""
'.Subject = "Tagesumsatz Ästhetik " & Date & Time
.Subject = "Ästhetik " & ActiveSheet.Range("A1")
.attachments.Add AWS
.Body = "Hallo," & vbCrLf & vbCrLf & "anbei der Tagesumsatz für die Ästhetik Produkte." & vbCrLf & vbCrLf & "Mit freundlichen Grüßen" & vbCrLf & "J. Freitag" & vbCrLf & vbCrLf
.ReadReceiptRequested = False
.send
End With
'Outlook schliessen
'OutApp.Quit
'Set OutApp = Nothing
'Set Nachricht = Nothing
End Sub

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Email aus Excel
06.06.2005 11:54:08
Rene
warum willst du die formeln löschen?
Sind die geheim?
du kannst ja nen schutz über das Blatt legen und als eigenschaften einstellen, dass die Formeln verborgen sind.
Oder per Makro:
Du makierst alles, kopierst es und fügst es über "Ihnalte einfügen" - "Werte" wieder ein.
gruss René
Bitte Rückmeldung
AW: Email aus Excel
06.06.2005 12:47:12
Jakob
Hallo René,
die Formeln sind nicht geheim, aber wenn ich die komplette Datei sind das ca. 700 KB und wenn ich nur die Zusammenfassung schicke, dann sind es nur 30 KB. Da ich die anderen Tabellenblätter aus der Datei löschen will muß ich vorher die Formeln in Festwerte umwandeln. Das klappt ja alles, nur am Ende wird die ursprüngliche Datei mit den Formeln und Tabellenblättern verschickt. Es scheint als ob er die gespeicherte Datei verschickt.
J. Freitag
Anzeige
AW: Email aus Excel
06.06.2005 12:52:09
Rene
diese aktion kannst du aufzeichnen.
nimm das blatt welches du versenden willst und führe folgenden Code aus:
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
gruss René
Bitte Rückmeldung
AW: Email aus Excel
06.06.2005 13:29:29
Jakob
Hallo René,
irgendwie reden wir einander vorbei. Wenn Du Dir meinen ersten Beitrag noch mal anschaust wirst Du sehen daß ich es genauso mache. Das Problem ist, das am Ende scheinbar doch nur die gespeicherte Datei verschickt wird und nicht die geöffnete. Es soll aber die aktuell geöffnete Datei versendet werden.
J. Freitag
Anzeige
AW: Email aus Excel
06.06.2005 13:35:58
Rene
Achso ja, ich vergaß zu sagen, dass du die Datei noch vorher abspeichern musst.
Das kannst du ja temporär machen und nach dem versenden wieder löschen
versuchs mal so:

Sub SendActiveSheetV1()
ActiveSheet.Copy
With Application
.Dialogs(xlDialogSendMail).Show _
"emailname@server.de", _
"Excel ist da!"
End With
ActiveWorkbook.Close Savechanges:=False
End Sub

gruss René
Bitte Rückmeldung
AW: Email aus Excel
06.06.2005 13:36:07
Rene
Achso ja, ich vergaß zu sagen, dass du die Datei noch vorher abspeichern musst.
Das kannst du ja temporär machen und nach dem versenden wieder löschen
versuchs mal so:

Sub SendActiveSheetV1()
ActiveSheet.Copy
With Application
.Dialogs(xlDialogSendMail).Show _
"emailname@server.de", _
"Excel ist da!"
End With
ActiveWorkbook.Close Savechanges:=False
End Sub

gruss René
Bitte Rückmeldung
Anzeige
AW: Email aus Excel
06.06.2005 13:47:24
Jakob
Hallo René
vielen Dank für Deine Mühe. Kurze Erläuterung: ich muß täglich eine Umsatzmeldung abgeben. Damit ich nach der Erstellung der Umsatzzahlen nicht jedesmal die Empfänger und den Emailtext neu eingeben muß, wollte ich das über VBE machen. Das heißt ich benötige für die tägl. Auswertungen die Datei mit den Formeln und den restlichen Tabellenblättern aus denen ich die Kundendaten zusteuere. Deshalb will ich die Datei nicht vor den speichern senden.
Der Fehler muß irgendwie in den Code von Excel_Workbook_via_Outlook_Senden liegen. Kannst Du Dir mal genauer anschauen vielleicht findest Du den Fehler. Den Code habe ich hierher: http://www.office.gmxhome.de/_excel_outlook.htm#Mappe_mit_Outlook_senden.
Besten Dank im Voraus.
Gruß
J. Freitag
Anzeige
AW: Email aus Excel
06.06.2005 14:08:16
Rene
Hi,
versuchs mal damit.
Daten versenden OHNE Formeln und OHNE das Original zu verändern.

Sub SendRange()
Dim objOutlook As Object
Dim objMail As Object
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
ActiveSheet.Range("F2:G4").Copy 'Hier dein Bereich den du senden willst
Workbooks.Add
Sheets(1).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
ActiveWorkbook.SaveAs "C:\Test.xls" ' irgendein Pfad für die Temporäre Kopie
With objMail
.To = "user@irgendwas.de"
.Subject = "Post ist da!"
.Body = "Hallo user, hier ist deine Auswertung!"
.Attachments.Add ActiveWorkbook.FullName
.Display
End With
ActiveWorkbook.Close
Kill ("C:\Test.xls") ' löscht deine Kopie wieder
Set objOutlook = Nothing
Set objMail = Nothing
End Sub

gruss René
Bitte Rückmeldung
Anzeige
AW: Email aus Excel
07.06.2005 09:56:29
Jakob
Hallo René,
wenn ich es nach Deiner Methode mache (mit zwischenspeichern) dann klappt es.
Vielen Dank
Gruß
J.Freitag
AW: Email aus Excel
07.06.2005 16:21:52
Rene
Gerne geschehen.
Viel Spaß damit
gruss René
Bitte Rückmeldung
AW: Email aus Excel
06.06.2005 12:57:01
JensM
Hallo Jakob!
Probier es mal mit einem SPEICHERN der Tabelle nach Umwandlung in Werte und vor Versand.
Grüße,
Jens
AW: Email aus Excel
06.06.2005 13:36:06
Jakob
Hallo Jens,
ich benötige aber für den nächsten Tag die Datei mit den Formeln um die eine neue Auswertung zu machen, deshalb kann ich die Datei nicht vorher speichern. Ich verstehe auch nicht ganz durch welchen Teil des Codes er die vorher durchgeführten Aktionen wieder rückgängig macht. In den Code habe ich ja auch keinen Verweis auf den Speicherort der Datei.
Gruß
J.Freitag
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige