Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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
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:
Anzeige
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.
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
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Hyperlink in Outlook mit Excel und VBA erstellen


Schritt-für-Schritt-Anleitung

  1. Vorbereitungen treffen: Stelle sicher, dass Du Excel und Outlook installiert hast und dass beide Programme ordnungsgemäß funktionieren.

  2. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.

  3. Neues Modul einfügen: Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  4. Makro für das Versenden von E-Mails erstellen: Füge den folgenden VBA-Code in das Modul ein:

    Sub send_Email()
       Dim ol As Object
       Dim Mail As Object
       Dim F_link As String
       Dim MBody As String
       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))", "<a href='" & F_link & "'>click here</a>")
       Set ol = CreateObject("Outlook.Application")
       Set Mail = ol.CreateItem(0)
       Mail.Subject = "Test"
       Mail.To = "Test@test.de"
       Mail.cc = "Test_CC@test.de"
       Mail.bcc = "Test_BCC@test.de"
       Mail.HTMLBody = MBody
       Mail.Display
       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
  5. Hyperlink anpassen: Stelle sicher, dass in der Zelle B2 der Text und in B3/B4 der Pfad und Dateiname stehen. Der Hyperlink wird dann in die E-Mail eingefügt.


Häufige Fehler und Lösungen

  • Problem: Der Hyperlink wird nicht korrekt dargestellt.

    • Lösung: Verwende .HTMLBody anstelle von .Body, um den HTML-Link korrekt darzustellen.
  • Problem: Lange Pfadnamen führen zu Zeilenumbrüchen.

    • Lösung: Ersetze Zeilenumbrüche im MBody-String mit <br>:
    mbody = Replace(mbody, Chr(10), "<br>")
  • Problem: Outlook zeigt einen Fehler beim Öffnen des Links.

    • Lösung: Überprüfe die Sicherheitseinstellungen in Outlook. Möglicherweise werden lokale Links blockiert.

Alternative Methoden

  • Mailto-Link verwenden: Du kannst auch einen mailto-Link erstellen, um eine E-Mail mit vorgefülltem Betreff und Inhalt zu öffnen. Beispiel:

    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="mailto:test@test.de?subject=Test&body=Hier%20ist%20der%20Link: " & F_link
  • Direkt in Outlook: Erstelle den Hyperlink direkt in Outlook, indem Du den Pfad als Text eingibst und diesen dann manuell als Link formatierst.


Praktische Beispiele

  • Beispiel 1: Hyperlink zu einer Datei

    • Wenn Du einen Dateipfad hast, kannst Du diesen so einfügen:
    F_link = "file:///" & Replace(F_link, "\", "/")
  • Beispiel 2: E-Mail mit mehreren Links

    • Füge mehrere Links in den E-Mail-Body ein, indem Du den MBody entsprechend anpasst:
    MBody = "Hier ist dein Link: <a href='" & F_link & "'>Klicke hier</a> und hier ist ein weiterer Link: <a href='http://example.com'>Beispiel</a>"

Tipps für Profis

  • VBA-Fehlerbehandlung: Implementiere eine bessere Fehlerbehandlung, um spezifische Fehler zu identifizieren und zu lösen.

  • E-Mail-Vorlagen nutzen: Du kannst Vorlagen in Outlook erstellen und diese über VBA aufrufen, um Zeit zu sparen.

  • Sicherheitseinstellungen optimieren: Stelle sicher, dass Deine Sicherheitseinstellungen in Outlook so konfiguriert sind, dass sie das Versenden von Links nicht blockieren.


FAQ: Häufige Fragen

1. Wie kann ich einen Hyperlink zu einer Datei in einer E-Mail einfügen? Um einen Hyperlink zu einer Datei einzufügen, stelle sicher, dass der Pfad korrekt formatiert ist und verwende .HTMLBody, um den Link korrekt darzustellen.

2. Warum öffnet Outlook den Link nicht? Das kann an den Sicherheitseinstellungen in Outlook liegen. Überprüfe, ob lokale Links erlaubt sind und ob ein Dialog zum Öffnen oder Speichern der Datei angezeigt wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige