Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1124to1128
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

per Excel Mail hyperlink in Outlook Mailbody

per Excel Mail hyperlink in Outlook Mailbody
Fettertiger
Hallo werte Experten,
als ich seinerzeit von VBA kaum mehr wusste als für was VBA überhaupt steht, habe ich mir im Internet ein Makro zum Versenden von Emails aus Excel heraus (via Outlook) gesucht. Dieses "grund"-Makro verrichtet in vielen meiner tools treue Dienste:
Sub send_Email()
Dim ol, Mail As Object
Dim OlbyValue
On Error GoTo mailerrorhandler
F_link = ActiveSheet.Range("b3").Value & ActiveSheet.Range("b4").Value
F_link = Replace(F_link, " ", "%20")
MBody = ActiveSheet.Range("b2").Value
MBody = Replace(MBody, "((Link))", F_link)
Set ol = CreateObject("Outlook.Application")
Set Mail = ol.CreateItem(0)
Mail.Subject = "Test"            'kommt normal über eine Variable
Mail.To = "Test@test.de"         'kommt normal über eine Variable
Mail.cc = "Test_CC@test.de"      'kommt normal über eine Variable
Mail.bcc = "Test_BCC@test.de"    'kommt normal über eine Variable
Mail.body = MBody
Mail.Display
'Application.SendKeys "%s" 'Deactivated to allow user to read mail before sending
' MsgBox (myInspector.CurrentItem.ReceivedTime)
Application.ScreenUpdating = False
Application.Wait Now + TimeSerial(0, 0, 1)
Application.ScreenUpdating = True
Set ol = Nothing
Set Mail = Nothing
Exit Sub
mailerrorhandler:
MsgBox ("Outlook is not yet running" & Chr(10) & "Please resend your mails later")
Err.Clear
Set ol = Nothing
Set Mail = Nothing
End Sub

Der Text in der Zelle B2 enthält einen Platzhalter, der durch das makro durch einen Pfad ersetzt wird. Outlook sollte diesen Pfad als Hyperlink darstellen. Leider funzt das nicht zuverlässig, mir scheint, das insbesondere "lange" Pfadnamen zu einem Zeilenumbruch führen und dann nicht mehr als Link interpretiert werden.
Hat jemand von Euch eine Idee, wie ich die Darstellung als Hyperlink "erzwingen" kann?
Muster: https://www.herber.de/bbs/user/66660.zip
Danke und Gruss
Fettertiger

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: per Excel Mail hyperlink in Outlook Mailbody
17.12.2009 13:58:09
Petra
Hi Fettertiger
ich nehme an, Du willst im Mail einen Hyperlink erzeugen?! dann:
Mail.body = "file:" & MBody
Klappts?
Lieben Gruß Petra
AW: per Excel Mail hyperlink in Outlook Mailbody
17.12.2009 15:05:51
mumpel
Hallo!
Das geht nur mit .htmlBodycolor>, nur dann bekommst Du einen korrekten Hyperlink. Bei .bodycolor> handelt es sich um normale Textmails, welche in der Regel keinen HTML-Code verarbeiten können.
Wenn in B3 der Pfad steht und in B4 der Dateiname, dann kannst Du das so machen (.htmlBody)
Wenn Du lieber einen Internetlink benötigst, dann .htmlBody so:

Gruß, René
Anzeige
AW: per Excel Mail hyperlink in Outlook Mailbody
17.12.2009 15:46:33
Fettertiger
Hi Mumpel, hallo Petra,
ist leider (noch) nicht ganz was ich brauche. Petras Lösung klappt nicht weil in der Zelle die Mbody füllt eben nicht nur der Pfad, sondern der ganze text steht - der Hyperlink steht somit an der falschen stelle.
Ich habe Mumpels Lösung etwas angepasst, mir verschwinden damit aber sämtliche Zeilenumbrüche.
Kann ich die Umbrüche auch entsprechend "replacen"?
Hier mein angepasstes Macro:
Sub send_Email_2()
Dim f_link As String
Dim olApp As Object
Dim mbody As String
mbody = ActiveSheet.Range("b2").Value
f_link = ActiveSheet.Range("B3").Value & ActiveSheet.Range("B4").Value
f_link = "click here"
mbody = Replace(mbody, "((Link))", f_link)
Set olApp = CreateObject("Outlook.Application")
With olApp.CreateItem(0)
.Subject = "Test"
.To = "Test@test.de"
.cc = "Test_CC@test.de"
.bcc = "Test_BCC@test.de"
.htmlbody = mbody
.Display
End With
Set olApp = Nothing
End Sub
Ich sehe jetzt zwar einen Link, wenn ich darauf mit klicke wird das File aber nicht geöffnet (liegt vielleicht daran dass es sich um ein File in einem Verzeichnis und nicht um eine URL handelt?)
Danke und Gruss
Fettertiger
Anzeige
AW: per Excel Mail hyperlink in Outlook Mailbody
17.12.2009 16:14:05
mumpel
In HTML werden Zeilenumbrüche mit <br>color> erzeugt. Diese entweder direkt mit in der Zelle eingeben oder zusätzlich erzeugen. Du kannst das Anschreiben auch direkt in VBA angeben. Könnte so aussehen:
Zum Ersetzen der Zeilenumbrüche könntest Du es so versuchen:
AW: per Excel Mail hyperlink in Outlook Mailbody
17.12.2009 16:24:34
mumpel
Nein, dass liegt an Deinen Einstellungen. Bei mir erscheint ein Dialog, in dem ich auswählen kann, ob geöffnet oder gespeichert werden soll. Bei mir funktioniert das Öffnen problemlos. Prüfe mal die Sicherheitseinstellungen von Outlook. Möglicherweise blockiert Outlook Links auf lokale Pfade.
Anzeige
AW: per Excel Mail hyperlink in Outlook Mailbody
17.12.2009 16:56:23
Fettertiger
Hi Mumpel,
ich weiss nicht warum, bisher kam immer nur ein Hinweis ob ich das den wirklich tun will, und danach kam besagter "General Fehler". Komischerweise funktioniert der Link jetzt aber (ohne das ich was geändert habe) einwandfrei.
Das Zeilenumbruchproblem habe ich Mittlerweile glöst. Ich ersetze einfach die Chr(10) im Mbody - String durch &ltbr&gt. Der neue Code sieht somit so aus:
Sub send_Email_2()
Dim f_link As String
Dim olApp As Object
Dim mbody As String
mbody = ActiveSheet.Range("b2").Value
f_link = ActiveSheet.Range("B3").Value & ActiveSheet.Range("B4").Value
f_link = "click here"
mbody = Replace(mbody, "((Link))", f_link)
mbody = Replace(mbody, Chr(10), "&ltbr&gt")
Set olApp = CreateObject("Outlook.Application")
With olApp.CreateItem(0)
.Subject = "Test"
.To = "Test@test.de"
.cc = "Test_CC@test.de"
.bcc = "Test_BCC@test.de"
.htmlbody = mbody
.Display
End With
Set olApp = Nothing
End Sub

Vielen Dank für Eure Hilfe!
Grüße
Fettertiger
Anzeige

226 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige