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

Arbeitsmappe versenden per VBA???

Arbeitsmappe versenden per VBA?
10.10.2005 16:37:16
ralle
Hallo zusammen!
Ich habe folgende Frage.
Möchte eine Arbeitsmappe als Anhang an eine Mail versenden und das ganze per VBA.
Die Email-Adresse steht in der Zelle G3, zudem wäre es auch ganz schön wenn man die Email-Adresse aus dem Outlook-Kontakt Ordner auswählen könnte.
Gibt es dafür eine Lösung?
Bis jetzt schaffe ich es nur einzelne Tabellenblätter per Email und VBA zu versenden. Hier mal das Makro dafür, vielleicht kann man das ja umbauen:
Für Eure Mühe bedanke ich mich schon jetzt rechtherzlich!!
Gruß
ralle
Option Explicit
Declare

Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub BlattKopierenUndVersenden()
'alle Tabellenblätter als Arbeitsmappe
'im Temporären Ordner speichern, als
'Anlage mit Outlook versenden und anschliesend löschen
'Empfängeradresse steht in "G3" der jeweiligen Tabelle
Dim wks As Worksheet
Dim strAddress As String
Dim strPath As String
Dim strName As String
Dim strFile As String
Dim wkbaktiv As Workbook
Set wkbaktiv = ActiveWorkbook
strPath = "C:\winnt\Temp\" 'Pfad des Temporären Ordners
Application.ScreenUpdating = False
On Error GoTo fehler
For Each wks In wkbaktiv.Sheets
With wks
If InStr(1, .[G3], "@") = 0 Then GoTo Nomail
strName = wks.Name 'Tabellenname
strFile = strPath & strName & ".xls" 'Dateiname
strAddress = .[G3] 'Empfänger
.Copy
End With
With ActiveWorkbook
.SaveAs strFile
Senden strFile, strAddress 'Datei versenden
.Close
End With
Kill strFile 'Datei löschen
Nomail:
Next
fehler:
Application.ScreenUpdating = True
End Sub


Sub Senden(AWS As String, strTo As String)
Dim Nachricht As Object, OutApp As Object
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.To = strTo 'Empfänger
.Subject = "Irgendein Betreff" 'Betreff
.attachments.Add AWS 'Anlage(Tabelle)
.Body = "Diese Mail wurde automatisch versand" & vbCrLf & "" 'Nachrichtentext
'Hier wird die Mail nochmals angezeigt
'.Display
'Hier wird die Mail gleich in den Postausgang gelegt
.Send
End With
OutApp.Quit
Set OutApp = Nothing
Set Nachricht = Nothing
Sleep 5000 'warten auf Outlook
End Sub

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Arbeitsmappe versenden per VBA?
13.10.2005 12:34:57
tombo
Hallo,
ich verwende zu mailen mit 3 Möglichkeiten folgenden Code:
'----------------
Public

Sub test()
Outlook_Mail "ab@xyz.de", "1.Test mit Betreff, ohne Msg, ohne Anlage", "", ""
Outlook_Mail "ab@xyz.de", "2.Test mit Betreff, mit Msg, ohne Anlage", "Hier steht die Nachricht", ""
Outlook_Mail "ab@xyz.de", "3.Test mit Betreff, mit Msg, mit Anlage", "Hier steht die Nachricht", "c:\temp\beispiel.jpg"
End Sub

'----------------

Sub Outlook_Mail(EmailEmpfänger As String, EmailBetreff As String, _
Optional EmailMsg As String, Optional EmailAnlage As String)
Dim myOlApp, olMailItem, MailItem, myRecipient, myAttachments
'Outlook wird geöffnet
Set myOlApp = CreateObject("Outlook.Application")
'Fenster für neue Mail wird geöffnet
Set MailItem = myOlApp.CreateItem(olMailItem) ' opens new email
On Error GoTo ErrorHandler
'Empfänger der Mail wird in das Adressfeld "An:" geschrieben
Set myRecipient = MailItem.Recipients.Add(EmailEmpfänger)
'Betreff der Mail wird in das Feld "Betreff:" geschrieben
MailItem.Subject = EmailBetreff
'Der Text der Nachricht wird übertragen
MailItem.Body = EmailMsg
'Wenn Anlage angehängt werden soll, in nächster Zeile
'das Apostroph entfernen.
If EmailAnlage <> "" Then Set myAttachments = MailItem.Attachments.Add(EmailAnlage)
MailItem.Send   'Email wird gesendet
Exit Sub
ErrorHandler:
MsgBox vbTab & "Eine E-Mail an die Adresse " & vbCrLf & vbCrLf & _
vbTab & EmailEmpfänger & vbCrLf & vbCrLf & _
"kann leider NICHT automatisch versendet werden."
End Sub

'----------------
Gruß Thomas
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige