Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Email aus Excel - Signatur ohne Bilder

Forumthread: Email aus Excel - Signatur ohne Bilder

Email aus Excel - Signatur ohne Bilder
13.11.2024 14:23:43
Raimund
Hi All

Dieses Makro versendet automatisch Email aus allen Blättern mit PDF als Anhang.
Signatur wird am Ende der Email eingefügt aber es sind nur Platzhalter sichtbar und keine Bilder.
Signatur Raimund.htm enthält 2 Bilder

Hat jemand eine Lösung?

Sub RaimundMail()

Dim OlApp As Object
Dim xlNewFileName As String
Dim tm As String
Dim ws As Worksheet
Dim lastRow As Long
Dim foundCell As Range
Dim strSignature As String
Dim strPath As String
Dim strPathBild As String
tm = Format(Time, "Short Time")

Set OlApp = CreateObject("Outlook.Application")

strPath = Environ("USERPROFILE") & "\AppData\Roaming\Microsoft\Signatures\"

strSignature = "Raimund.htm"
Dim signatureFile As String
signatureFile = strPath & "Raimund.htm"

If Dir(signatureFile) > "" Then
Dim fileNumber As Integer
fileNumber = FreeFile
Open signatureFile For Input As fileNumber
strSignature = Input$(LOF(fileNumber), fileNumber)
Close fileNumber
End If

strPathBild = Environ("USERPROFILE") & "\AppData\Roaming\Microsoft\Signatures\"



For Each ws In ThisWorkbook.Worksheets
If ws.Visible = xlSheetVisible Then
ws.Activate

Set foundCell = ws.Cells.Find("*", SearchOrder:=xlByRows, LookIn:=xlValues, SearchDirection:=xlPrevious)

If Not foundCell Is Nothing Then
lastRow = foundCell.Row
Else
GoTo NextSheet
End If

With ws.PageSetup
.PrintArea = "A1:G" & lastRow
.Orientation = xlPortrait
End With

Range("B2").Select

xlNewFileName = Environ("USERPROFILE") & "\Documents\" & ws.Name & ".pdf"
ws.Range("A:G").ExportAsFixedFormat Type:=xlTypePDF, Filename:=xlNewFileName, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=True, OpenAfterPublish:=False

Dim olMail As Object
Set olMail = OlApp.CreateItem(0)

With olMail
If tm "12:00" Then
.HTMLBody = "Good Morning.

Attached you will find your report.

"
Else
.HTMLBody = "Good Afternoon.

Attached you will find your report.

"
End If

If ActiveCell.Value = "ABC" Or ActiveCell.Value = "DEF" Then
.To = "raimund@web.de "
End If



' HTMLBody erstellen und die Bilder einbetten
Dim completeBody As String
completeBody = .HTMLBody & strSignature & ""

.HTMLBody = completeBody

.Attachments.Add xlNewFileName
.Subject = " Report - " & ws.Range("B2").Value & " in " & Format(DateAdd("m", -1, Now), "MMMM-YYYY")

On Error Resume Next
.Send
On Error GoTo 0
End With

NextSheet:
End If
Next ws

ThisWorkbook.Worksheets("Wheelie Bins").Activate
ThisWorkbook.Worksheets("Wheelie Bins").Range("C3").Select

Set OlApp = Nothing
Set olMail = Nothing
End Sub




Vielen Dank für Eure Hilfe

Gruss

Raimund
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Email aus Excel - Signatur ohne Bilder
13.11.2024 16:01:45
volti
Hallo Raimund,

ich denke mal, dass in der Variablen strSignature neben dem HTML-Text zur Formatierung des Signaturtextes für die Bilder im img-Tag nur der src-Pfad steht und das dürfte ja die lokale Adresse bei Dir sein. HTML-Text ist auch nur Text, da können keine Bilderdaten drin sein.

Nach Versand der eMail an andere Empfänger haben diese jedoch keinen Zugriff darauf. Zum Anzeigen von Bildern in eMails sind es entweder Adressen im Internet, auf die jeder Zugriff hat oder die Bilder müssen mitgeschickt werden (ggf. unsichtbar) und über eine Referenz, sogenannte CID innerhalb der Mail verlinkt sein.

Hier mal ein Beispiel zur Info, wie man Bilder einbetten könnte, auch wenn es nicht ganz auf Deine Anforderung passt:
https://www.clever-excel-forum.de/Thread-Mail-mit-eingebetteten-Bildern-aus-Dateien-erstellen

Ist die Signatur Deine Standardsignatur?
Dann klappt es vielleicht auch so (weiß ich jetzt aber nicht).
Aber vielleicht hat ja noch jemand anderes hier im Forum eine passende Lösung....

Code:


Sub Ausschnitt() With olMail If tm < "12:00" Then sTxt = "Good Morning.<br>Attached you will find your report.<br>" Else sTxt = "Good Afternoon.<br>Attached you will find your report.<br>" End If If ActiveCell.Value = "ABC" Or ActiveCell.Value = "DEF" Then .To = "raimund@web.de " End If .Subject = " Report - " & ws.Range("B2").Value & " in " _ & Format(DateAdd("m", -1, Now), "MMMM-YYYY") .Getinspector.Display .HTMLBody = sTxt & .HTMLBody .Attachments.Add xlNewFileName .Send End With End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz
Anzeige
AW: Email aus Excel - Signatur ohne Bilder
13.11.2024 16:56:22
Raimund
Hallo Karl-Heinz

Werde mir die Seite anschauen. Notfalls Verwende ich meine Signatur halt ohne Bilder.

Vien Dank

viele Grüße aus Ireland

Raimund
AW: Email aus Excel - Signatur ohne Bilder
19.11.2024 10:42:33
Luschi
Hallo Raimund,

auch ich mußte mit diesem Problem mal kämpfen: E-Mails per Vba mit Signaturbildchen.
- in der Signatur-xml-Datei steht der Pfad zum Signaturbild nur relativ und nicht absolut als Gesamtpfad drin
- bis Outlook 2010 konnte man per Vba die Signatur im Outlook-Menü einstellen
  und alles lief paletti
- das wurde mit Outlook 2013 von M$ still und heimlich unterbunden, ohne 1 Ersatzlösung anzubieten
- bei unserem Projekt waren 3 Partner beteiligt:
  Auftraggeber (Office 365), Excel-Entwickler (Office 2016) und Vba-Programmierer (Office 2019)
- und bei jedem dieser 3 Partner befand sich die passende Signaturdatei in 1 anderen Roaming-Verzeichnis
  mit 1er anderen xml-Signatur-Struktur!
  Warum die xml-Signaturdatei über 40.000 Byte groß sein muß, wissen wohl nur die Götter?
- meine Lösung dazu:
1. Signatur-xml-Datei und Signatur-Pfad in ein separates Verzeichnis
2. xml-Datei umbenenne in *.txt (gibt weniger Probleme beim Auslesen)
3. in der txt-Datei den absooluten Pfad zurm Signaturbid setzen
4. txt-Datei per Vba auslesen und in den HtmlBody-Tag der E-Mail schreiben

Und alles lief dann wieder wie am Schnürrchen.

Gruß von Luschi
aus klein-Paris
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige