Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1464to1468
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
Inhaltsverzeichnis

Excel VBA - Outlook Kopie und Signatur

Excel VBA - Outlook Kopie und Signatur
20.12.2015 10:26:52
Roebe
Ich möchte bestimmte Abläufe vereinfachen und habe folgende Fragen zum u. g. Code:
1) Signatur einfügen
Beispiel:
Mit freundlichen Grüßen
Vorname Nachname
Telefonnummer 0201-12121121
Von Uhrzeit bis Uhrzeit
2) Wie kann ich eine E-Mail Adresse über die Kopie Funktion eingeben ?
Hier mein Original Code:

Sub Datenblatt_senden_nr3_2122015()
Dim TabellenBlatt, Empfaenger, Betreff, SavePfadPraefix, SavePfadSuffix, SavePfadKomplett,   _
_
SaveName As String
'Modul_4_Anforderung_ÜbungsmaterialSchule_BEGINN der änderbaren Variablen!
TabellenBlatt = "Datenblatt"
Empfaenger = Array("yz@gmx.de", "xxx@t-online.de")
Betreff = "an xyz: Anforderung Übungsmaterial für den Unterricht - Schueler: " & Worksheets(" _
Datenblatt").Range("B21").Value & ", " & Worksheets("Datenblatt").Range("D21").Value & ",   _
Testdatum: " & Worksheets("Datenblatt").Range("B9").Value & ", Zeit: " & Worksheets("Datenblatt").Range("c9").Text
'ENDE der änderbaren Variablen!
Set WshShell = CreateObject("WScript.Shell")
SavePfadPraefix = WshShell.SpecialFolders("MyDocuments")
SavePfadSuffix = "\_excelexporttmp\"
SavePfadKomplett = SavePfadPraefix & SavePfadSuffix
SaveName = "export.xls"
If Dir(SavePfadKomplett, vbDirectory) = "" Then
MkDir SavePfadKomplett
End If
Worksheets(TabellenBlatt).Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs SavePfadKomplett & SaveName, FileFormat:=xlWorkbookNormal
Application.DisplayAlerts = True
Application.Dialogs(xlDialogSendMail).Show Empfaenger, Betreff
ActiveWorkbook.Close
End Sub

24
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel VBA - Outlook Kopie und Signatur
20.12.2015 10:39:06
Oberschlumpf
Kannst du uns eine Bsp-Datei zeigen, die genau in den Zellen verwendbare Bsp-Daten enthält, die in deinem Code "angesprochen" werden?
Und die Bsp-Datei sollte natürlich gleich auch den von dir hier gezeigten Code enthalten.

AW: Excel VBA - Outlook Kopie und Signatur
20.12.2015 11:41:18
Roebe
Leider bekomme ich die Datei nicht hochgeladen.
Der Ablauf funktioniert so: Bei Betätigung eines Buttons wird automatisch eine Outlook Email geöffnet. Bis dahin funktiert alles.
Nun möchte ich noch automatisch eine Signatur hinzufügen und eine Email Adresse in Kopie Funktion senden.
Diese Zeile
Empfaenger = Array("yz@gmx.de", "xxx@t-online.de")
müsste nur dahingehend abgeändert werden, dass die zweite Adresse unter cc landet (xxx@t-online.de).
Die Email Adressen werden also nur im Code hinterlegt, nicht per Datenfeld ausgelesen.
Den ganauen und kompletten Code siehst Du oben.
Falls die Datei doch benötigt wird, könnte ich diese evtl. separat senden. Ich bekomme über das Forum die Info - Datei zu gross - und - Endung problematisch - es ist eine Excel Arbeitsmappe.

Anzeige
AW: Excel VBA - Outlook Kopie und Signatur
20.12.2015 11:51:48
Oberschlumpf
kannst du nicht eine Bsp-Datei erstellen?
Einfach Excel öffnen. Nun hast du ja schon mal eine "leere" Datei.
Jetzt müsstest du nur Bsp-Daten in die wichtigen Zellen eintragen und den Code hinzufügen.
Zumindest sollte nun das, was für eine Lösung deiner Frage erforderlich ist, in der Datei enthalten sein.
Nur noch als .xlsm-Datei speichern + hier per Upload zur Verfügung stellen.
Wir benötigen nicht unbedingt deine Originaldatei.

AW: Excel VBA - Outlook Kopie und Signatur
20.12.2015 15:33:22
mumpel
Da ist aber Dein Code nicht drin. Wenn Du dem Link aus meiner Antwort von heute 12:35:40 folgst wirst Du einen Beispielcode finden, und eine Auflistung aller Parameter.

AW: Excel VBA - Outlook Kopie und Signatur
20.12.2015 12:24:45
mumpel
Hallo!
Welches Emailprogramm?
Gruß, René

AW: Excel VBA - Outlook Kopie und Signatur
20.12.2015 13:13:46
Roebe
Outlook

AW: Excel VBA - Outlook Kopie und Signatur
20.12.2015 12:35:40
mumpel
Nachtrag:
Für Outlook: Outlook-Workshop. Tante Google und Onkel Bing können mit weiteren Beispielcodes helfen.

AW: Excel VBA - Outlook Kopie und Signatur
20.12.2015 19:11:17
Roebe
Leider weiss ich nicht, wo ich was eingeben muss.
Habe mehrere Versuche gestartet, funktioniert aber nicht.

Anzeige
AW: Excel VBA - Outlook Kopie und Signatur
20.12.2015 19:36:07
Over
Hallo Roebe,

With Mail_Outlook
.To = "Empfaenger@mail.de"
.CC = "Kopiean@mail.de"
.BCC = "Blindkopiean@mail.de"
.Subject = Betreff
.body = mail_text
.Save     'Email in den "Gesendeten Objekten" speichern
.display  'Mail anzeigen
'.Send    'sofort senden
End With
Lg
Daniel Ov

AW: Excel VBA - Outlook Kopie und Signatur
20.12.2015 20:12:17
Roebe
Hallo, wo genau müsste dieser Code hin?
Dieses ist mein Original Code:
Sub Datenblatt_senden_nr3_2122015()
Dim TabellenBlatt, Empfaenger, Betreff, SavePfadPraefix, SavePfadSuffix, SavePfadKomplett,  _
SaveName As String
'Modul_4_Anforderung_ÜbungsmaterialSchule_BEGINN der änderbaren Variablen!
TabellenBlatt = "Datenblatt"
Empfaenger = Array("roebe@arcor.de")
Betreff = "Anforderung"
'ENDE der änderbaren Variablen!
Set WshShell = CreateObject("WScript.Shell")
SavePfadPraefix = WshShell.SpecialFolders("MyDocuments")
SavePfadSuffix = "\_excelexporttmp\"
SavePfadKomplett = SavePfadPraefix & SavePfadSuffix
SaveName = "export.xls"
If Dir(SavePfadKomplett, vbDirectory) = "" Then
MkDir SavePfadKomplett
End If
Worksheets(TabellenBlatt).Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs SavePfadKomplett & SaveName, FileFormat:=xlWorkbookNormal
Application.DisplayAlerts = True
Application.Dialogs(xlDialogSendMail).Show Empfaenger, Betreff
ActiveWorkbook.Close
End Sub

Anzeige
AW: Excel VBA - Outlook Kopie und Signatur
20.12.2015 20:25:37
mumpel
Die Zeile "Application.Dialogs(xlDialogSendMail).Show Empfaenger, Betreff" müsstest Du ersetzen durch den Outlook-Code.

AW: Excel VBA - Outlook Kopie und Signatur
20.12.2015 20:51:38
Roebe
Bekomme die Fehlermeldung Lauzeitfehler - Objeckt erforderlich:
Mein Code würde jetzt so aussehen :
Sub Datenblatt_senden_nr3_2122015()
Dim TabellenBlatt, Empfaenger, Betreff, SavePfadPraefix, SavePfadSuffix, SavePfadKomplett,   _
_
SaveName As String
'Modul_4_Anforderung_ÜbungsmaterialSchule_BEGINN der änderbaren Variablen!
TabellenBlatt = "Datenblatt"
Empfaenger = Array("roebe@arcor.de")
Betreff = "Anforderung"
'ENDE der änderbaren Variablen!
Set WshShell = CreateObject("WScript.Shell")
SavePfadPraefix = WshShell.SpecialFolders("MyDocuments")
SavePfadSuffix = "\_excelexporttmp\"
SavePfadKomplett = SavePfadPraefix & SavePfadSuffix
SaveName = "export.xls"
If Dir(SavePfadKomplett, vbDirectory) = "" Then
MkDir SavePfadKomplett
End If
Worksheets(TabellenBlatt).Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs SavePfadKomplett & SaveName, FileFormat:=xlWorkbookNormal
Application.DisplayAlerts = True
With Mail_Outlook
.To = "roebe@arcor.de"
.CC = "roebe@arcor.de"
.BCC = "roebe@arcor.de"
.Subject = Betreff
.body = mail_textMitfreundlichenGrüßen
.Save     'Email in den "Gesendeten Objekten" speichern
.display  'Mail anzeigen
'.Send    'sofort senden
End With
ActiveWorkbook.Close
End Sub

Anzeige
AW: Excel VBA - Outlook Kopie und Signatur
20.12.2015 21:51:00
Over
Hallo Roebe,

sub xyz()
'--Outlook Initialisierung --
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
'Variablen
Empfaenger="roebe@arcor.de"
Kopiean="roebe@arcor.de"
Betreff = "Anforderung"
mail_txt="Mit freundlichen Grüßen"
'der andere Kram
'zu sendende Datei vorher schließen
Set Mail_Outlook = OutApp.CreateItem(0)
With Mail_Outlook
.To = Empfaenger
.CC = Kopiean
'.BCC = ""
.Subject = Betreff
.body = mail_text
.Attachments.Add (SavePfadKomplett & SaveName)
.Save     'Email in den "Gesendeten Objekten" speichern
.display  'Mail anzeigen + manuell auf Senden klicken
'.Send    'sofort senden
End With
end sub
Lg
Daniel Ov

Anzeige
AW: Excel VBA - Outlook Kopie und Signatur
21.12.2015 09:30:12
Roebe
Vielen Dank für die Hilfe !!!
Nun habe ich versucht, den Code umzusezten und bekomme immer noch die Fehlermeldung
"Objekt erforderlich, Laufzeitfehler 424".
Was hat das zu bedeuten? Hier noch mal der neueste Code - evtl. habe ich ich etwas falsch ?
Sub Datenblatt_senden_nr3_21122015()
'--Outlook Initialisierung --
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
'Variablen
Empfaenger = "roebe@arcor.de"
Kopiean = "roebe@arcor.de"
Betreff = "Anforderung"
mail_txt = "Mit freundlichen Grüßen"
'der andere Kram
Dim TabellenBlatt, SavePfadPraefix, SavePfadSuffix, SavePfadKomplett, SaveName As String
'Modul_4_Anforderung_ÜbungsmaterialSchule_BEGINN der änderbaren Variablen!
TabellenBlatt = "Datenblatt"
Empfaenger = Array("roebe@arcor.de")
Betreff = "Anforderung"
'ENDE der änderbaren Variablen!
Set WshShell = CreateObject("WScript.Shell")
SavePfadPraefix = WshShell.SpecialFolders("MyDocuments")
SavePfadSuffix = "\_excelexporttmp\"
SavePfadKomplett = SavePfadPraefix & SavePfadSuffix
SaveName = "export.xls"
If Dir(SavePfadKomplett, vbDirectory) = "" Then
MkDir SavePfadKomplett
End If
Worksheets(TabellenBlatt).Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs SavePfadKomplett & SaveName, FileFormat:=xlWorkbookNormal
Application.DisplayAlerts = True
With Mail_Outlook
.To = "roebe@arcor.de"
.CC = "roebe@arcor.de"
.BCC = "roebe@arcor.de"
.Subject = Betreff
.body = mail_textMitfreundlichenGrüßen
.Save     'Email in den "Gesendeten Objekten" speichern
.display  'Mail anzeigen
'.Send    'sofort senden
End With
ActiveWorkbook.Close
End Sub

Anzeige
AW: Excel VBA - Outlook Kopie und Signatur
21.12.2015 09:47:51
mumpel
Du hast kein Outlook-Objekt erstellt. Daher auch die Fehlermeldung.
Hier mal eine Verbesserung, die auch wesentlich übersichtlicher ist.
Option Explicit
Private Declare PtrSafe Function apiCreateFullPath Lib "imagehlp.dll" Alias _
                                 "MakeSureDirectoryPathExists" (ByVal lpPath As String) As Long
                                 
Sub Datenblatt_senden_nr3_2122015()
 
Dim olApp       As Object
Dim strPfad     As String
Dim strName     As String
Dim olOldBody   As String
     
 
 apiCreateFullPath (Environ("USERPROFILE") & "\Documents\_excelexporttmp\")
 
 strPfad = Environ("USERPROFILE") & "\Documents\_excelexporttmp\"
 strName = "export.xls"
 
 
     Worksheets("Datenblatt").Copy
 
     With ActiveWorkbook
         .SaveAs strPfad & strName, FileFormat:=xlWorkbookNormal
         .Close
     End With

 Set olApp = CreateObject("Outlook.Application")
     With olApp
          .GetInspector.Display
          olOldBody = .htmlBody
          .To = "roebe@arcor.de"
          .CC = "roebe@arcor.de"
          .Subject = "Anforderung"
          .htmlBody = "Hallo!<br><br>Anbei Ihre Anforderung.<br><br>" & _
                      "Mit freundlichen Grüßen,<br>Reobe" & _
                      "<br><br>" & olOldBody
          .AttachmentsAdd strPfad & strName
          .Save
     End With
 
 End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


Anzeige
AW: Excel VBA - Outlook Kopie und Signatur
21.12.2015 20:14:52
Roebe
Hallo,
bei meinem Test ist herausgekommen, dass das Datenblatt nicht automatisch an die EMail angehangen wird.
Es kommen auch 2 Meldungen:
Eine Datei mit dem Namen `C:\Users\Sabine\Documents\excelexporttmp\export.xls'ist bereits an diesem Speicherort vorhanden. Soll sie ersetzt werden. ja Nein
und Laufzeitfehler 438: Objekt unterstützt diese Eigenschaft oder Methode nicht.
Gibt es da noch eine Lösung ?
Mfg Roebe

AW: Excel VBA - Outlook Kopie und Signatur
22.12.2015 01:57:16
mumpel
Option Explicit
Private Declare PtrSafe Function apiCreateFullPath Lib "imagehlp.dll" Alias _
                                 "MakeSureDirectoryPathExists" (ByVal lpPath As String) As Long
                                 
Sub Datenblatt_senden_nr3_2122015()
 
Dim olApp       As Object
Dim strPfad     As String
Dim strName     As String
Dim olOldBody   As String
     
 
 apiCreateFullPath (Environ("USERPROFILE") & "\Documents\_excelexporttmp\")
 
 strPfad = Environ("USERPROFILE") & "\Documents\_excelexporttmp\"
 strName = "export.xls"
 
 
 Worksheets("Datenblatt").Copy
 
 Application.DisplayAlerts = False
     With ActiveWorkbook
         .SaveAs strPfad & strName, FileFormat:=xlWorkbookNormal
         .Close
     End With
 Application.DisplayAlerts = True
 
 Set olApp = CreateObject("Outlook.Application")
     With olApp.CreateItem(0)
          .GetInspector.Display
          olOldBody = .htmlBody
          .To = "roebe@arcor.de"
          .CC = "roebe@arcor.de"
          .Subject = "Anforderung"
          .htmlBody = "Hallo!<br><br>Anbei Ihre Anforderung.<br><br>" & _
                      "Mit freundlichen Grüßen,<br>Reobe" & _
                      "<br><br>" & olOldBody
          .AttachmentsAdd strPfad & strName
          .Save
     End With
 
 End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


Anzeige
AW: Excel VBA - Outlook Kopie und Signatur
22.12.2015 09:23:23
Roebe
Hallo,
ich habe nun eine andere Möglichkeit gefunden, bestimmte Daten zu übernehmen.
Hierzu habe ich noch folgende Fragen:
Bei dem u. g. Code erscheint die Fehlermeldung: Laufzeitfehler 438, Objekt unterstützt diese Eigenschaft oder Methode nicht.
Wie bekomme ich diese Meldung weg ?
Wie kann ich diese Schriftart nun in
Comic Sans MS auf eine Schriftgröße von 15 ändern.
Diese Zeilen wäre betroffen:
.htmlBody = "Hallo,
wir benötigen Übungsmaterial .
" & _
"Mit freundlichen Grüßen
Bezeichnung
roebe " & _
Der aktuelle Code:
Option Explicit
Private Declare PtrSafe

Function apiCreateFullPath Lib "imagehlp.dll" Alias _
"MakeSureDirectoryPathExists" (ByVal lpPath As String) As Long

Sub Datenblatt_senden_nr3_2122015()
Dim olApp       As Object
Dim strPfad     As String
Dim strName     As String
Dim olOldBody   As String
apiCreateFullPath (Environ("USERPROFILE") & "\Documents\_excelexporttmp\")
strPfad = Environ("USERPROFILE") & "\Documents\_excelexporttmp\"
strName = "export.xls"
Worksheets("Datenblatt").Copy
Application.DisplayAlerts = False
With ActiveWorkbook
.SaveAs strPfad & strName, FileFormat:=xlWorkbookNormal
.Close
End With
Application.DisplayAlerts = True
Set olApp = CreateObject("Outlook.Application")
With olApp.CreateItem(0)
.GetInspector.Display
olOldBody = .htmlBody
.To = "roebe@arcor.de"
.CC = "roebe@arcor.de"
.Subject = "Anforderung Übungsmaterial für den Unterricht - Schueler: " & Worksheets(" _
Datenblatt").Range("B21").Value & ", " & Worksheets("Datenblatt").Range("D21").Value & ", Rückmeldetermin: " & Worksheets("Datenblatt").Range("B45").Value
.htmlBody = "Hallo,
wir benötigen Übungsmaterial .
" & _ "Mit freundlichen Grüßen
Bezeichnung
S. Roebe " & _ "
" & olOldBody .AttachmentsAdd strPfad & strName .Save End With End Sub

AW: Excel VBA - Outlook Kopie und Signatur
22.12.2015 09:36:53
mumpel
Die Schrift entweder mit HTML-Code anpassen. Oder mit dem Wordeditor, siehe Email aus Word/Excel erstellen Teil 2 in meinem Outlook-Workshop.

Nachtrag
22.12.2015 09:39:27
mumpel
Da habe ich einen Punkt vergessen, Attachments.Add muss es heissen.

AW: Nachtrag
22.12.2015 11:00:13
Roebe
Vielen Dank. Jetzt funktioniert es. Super !!!!!

Korrektur
21.12.2015 09:53:01
mumpel
Option Explicit
Private Declare PtrSafe Function apiCreateFullPath Lib "imagehlp.dll" Alias _
                                 "MakeSureDirectoryPathExists" (ByVal lpPath As String) As Long
                                 
Sub Datenblatt_senden_nr3_2122015()
 
Dim olApp       As Object
Dim strPfad     As String
Dim strName     As String
Dim olOldBody   As String
     
 
 apiCreateFullPath (Environ("USERPROFILE") & "\Documents\_excelexporttmp\")
 
 strPfad = Environ("USERPROFILE") & "\Documents\_excelexporttmp\"
 strName = "export.xls"
 
 
     Worksheets("Datenblatt").Copy
 
     With ActiveWorkbook
         .SaveAs strPfad & strName, FileFormat:=xlWorkbookNormal
         .Close
     End With

 Set olApp = CreateObject("Outlook.Application")
     With olApp.CreateItem(0)
          .GetInspector.Display
          olOldBody = .htmlBody
          .To = "roebe@arcor.de"
          .CC = "roebe@arcor.de"
          .Subject = "Anforderung"
          .htmlBody = "Hallo!<br><br>Anbei Ihre Anforderung.<br><br>" & _
                      "Mit freundlichen Grüßen,<br>Reobe" & _
                      "<br><br>" & olOldBody
          .AttachmentsAdd strPfad & strName
          .Save
     End With
 
 End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


AW: Korrektur
21.12.2015 10:01:17
Roebe
Vielen, vielen Dank. Das sieht gut aus.
Heute Abend probiere ich alles mal im Detail aus.
Viele Grüße
Roebe

85 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige