Hyperlink an Email per Makro

Hallo  zusammen,

ich möchte gerne über excel vba eine email versenden.
das makro soll jedoch ein hyperlink, über eine excel datei, aus einem ordner, in die email anhängen.
Dabei soll beachtet werden, dass immer die aktuellste Datei als hyperlink genommen wird.
Da jede woche eine neue datei in den order kommt und die verschickt werden muss.

Wie ich eine email per vba verschicke habe ich so gelöst: (siehe unten)
Möchte aber ein hyperlink anstatt der aktuellen Arbeitsmappe.
Hoffe ihr könnt mir da weiterhelfen.

viele Grüße Florian

Sub aekobewerten\_click()
Dim Nachricht As Object, OutApp As Object
Set OutApp = CreateObject("Outlook.Application")
Dim AWS As String
'Aktive Arbeitsmappe wird als Mail gesendet
AWS = ThisWorkbook.FullName
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
 .To = ""
 .Subject = "Zu bewertende ÄKOs vom " & Date
 .attachments.Add AWS
 .Body = "Guten Tag zusammen," & vbCrLf & "" & vbCrLf & "hiermit schicke ich Ihnen den Link zu der Liste mit den aktuell offenen, zu bewertenden ÄKOs." & vbCrLf & "Bitte geben Sie innerhalb von 2 Wochen Bescheid, ob diese bewertet werden müssen oder nicht. Falls ja, schicken Sie mir bitte das Formblatt A für alle vier Werke mit, unterschrieben als eingescanntes PDF. " & vbCrLf & "Pro Gewerk ein Formblatt!" & vbCrLf & "" & vbCrLf & "Vielen Dank"
 'Hier wird die Mail nochmals angezeigt
 .Display
 'Hier wird die Mail gleich in den Postausgang gelegt
 'Mail.Send
End With
'Outlook schliessen
OutApp.Quit
Set OutApp = Nothing
Set Nachricht = Nothing
End Sub

Hallo!

Ein Hyperlink ist doch nur ein Stück zusammengesetzer Text. Füge also an der gewünschten Stelle dem .BODY den entsprechenden String hinzu.

Um die neueste Datei in einem Ordner zu finden, bietet sich die DIR()-Funktion. Schau Dir mal Herbers Artikel http://www.herber.de/mailing/vb/html/vafctdir.htman und das dazu gehörende Beispiel.

Gruß(Woly)

Hallo,

wenn Du einfach den Pfad zu Deiner Datei in den Body einfügst, sollte Outlook das beim Empfänger selber als Link erkennen und entsprechend formatieren.
Wenn das nicht funktioniert, musst Du sicherstellen, dass die Mail als HTML versendet wird.
Dazu habe ich in einem vba-Makro die Option Nachricht.IsBodyHTML = true gesetzt.
Dann musst Du allerdings den Body komplett in HTML beschreiben.

Gruß
Michael

Hallo,

Hallo Michael,

Wenn das nicht funktioniert, musst Du sicherstellen, dass die
Mail als HTML versendet wird.

Das nützt dir aber nix, wenn der Adressat eingestellt hat, dass er nur Text empfangen will.

Gruß
Michael

Gruß, Andreas

Hallo zusammen,

danke erstmal für eure tipps. bin ein ganzes stück weiter gekommen. ich habe zwei codes zusammenbasteln können, nur schaffe ich es nicht diese zu verbinden.

einmal der code für das auslesen der jüngsten Datei:
Sub Dateiliste_Neu()
’ jüngste Datei feststellen
Dim strVerzeichnis As String
Dim strDatei As String
Dim I As Integer
Dim StrTyp As String
Dim Dateiname As String
Dim Dateiname_neu As String
Dim Zeit As Date
strVerzeichnis = „X:\0_HMP4\3_Praktikanten\Sokoli\EDIT_ ÄKO Tool_ÄKO-Bearbeitung_Bearbeitung_neue_Bewertungen“
StrTyp = „*.xlsm“
Dateiname = Dir(strVerzeichnis & StrTyp)
Dateiname_neu = Dateiname
Zeit = FileDateTime(strVerzeichnis & Dateiname)
Do While Dateiname „“
If Zeit

Hallo Flori,

mir ist leider trotz allem was du sagtest noch leicht unklar was genau du willst, das Wort „Hyperlink“ irritiert mich stark.

a) du hast da deinen Emailversendecode, willst du daß im Code anstatt
.attachments.Add AWS
.attachments.Add „Link zu der Datei auf deinem Rechner“
steht?

b) willst du eine Mail versenden wo im Mailtext ein Hyperlink steht? Wie soll das gehen wenn der Empfänger „NurText“ gewählt hat. Noch dazu nützt dem Mailempfänger wohl kein anklickbarer Link in der Mail der auf deinen PC zeigt. Ginge nur bei gemeinsamen Netzwerk.

Wie auch immer, beantworte mir das bitte. In einem Beitrag von dir sprichst du von zwei Codes, zeigst aber nur einen, zeige bitte beide. Was genau geschieht bei der Msgbox-Codezeile, mir unklar.

Übrigens, „Hyperlink an Email“ tönt für mich wie etwas hier aus dem Koch-Brett. „Salbei an Heringsscheiben“ oder was für Zeugs die da zusammenmischen :smile:)
Im Zusammenhang mit Excel, Vba, Email sagt es mir nix.

Gruß
Reinhard

Hallo Reinhard,

entschuldige ich hab da wohl einiges durcheinander gebracht.
Wir benutzen auf der arbeit ein Netzwerk, d.h jeder kann auf dem Server zugreifen, da jedermanms Daten da abgelegt sind.

zu a) .attachments.Add ist falsch, steht da nur weil ich es erstmal nicht besser lösen konnte. Ich wünsche mir ganz einfach einen Link, der jüngsten Daten eines Ordners, in meiner email. Kein attachment und keine msgbox.
Die msgbox diente mir nur als Ausgabe, damit ich erstmal ein Grundgerüst habe. Ich hatte vor es später an den email code anzuhängen.

An sich ist nur erste code wichtig, der zweite ist nicht relevant. Der erste liest die jüngste Datei und gibt den Namen der Datei aus. An der stelle hätte ichgerne die Ausgabe des Names als Hyperlink. Dieser Dateiname als Hyperlink soll über das Makro als email versendet werden, weil ich nicht jeden Tag, -Datei markieren, -link erzeugen, -in email einfügen und -verschicken, möchte. So soll das makro dies alles übernehmen.
Hoffe es ich konnte es diesmal etwas klarer erläutern.
viele Grüße Florian

An sich ist nur erste code wichtig, der zweite ist nicht
relevant. Der erste liest die jüngste Datei und gibt den Namen
der Datei aus. An der stelle hätte ichgerne die Ausgabe des
Names als Hyperlink. Dieser Dateiname als Hyperlink soll über
das Makro als email versendet werden,

Hallo Florian,

wenn du den Dateinamen (und Pfad) hast müßte dies dir helfen den Link in die mail zu kriegen:
http://www.office-loesung.de/ftopic61517_0_0_asc.php

Gruß
Reinhard

Hallo Reinhard,

ja es hat mir sehr geholfen, danke erstmal dafür. Jedoch schaffe ich es nicht ein Text da einzufügen, ständig erhalte ich fehler, wenn ich hallo eintippe, nimmte er dies nicht an. woran könnte das liegen ?

Sub Dateiliste_Neu()
’ jüngste Datei feststellen
Dim strVerzeichnis As String
Dim strDatei As String
Dim I As Integer
Dim StrTyp As String
Dim Dateiname As String
Dim Dateiname_neu As String
Dim Zeit As Date
Dim mailmsg As Object
Dim OutLkApp As Object

strVerzeichnis = „X:\0_HMP4\3_Praktikanten\Sokoli\EDIT_ ÄKO Tool_ÄKO-Bearbeitung_Bearbeitung_neue_Bewertungen“
StrTyp = „*.xlsm“
Dateiname = Dir(strVerzeichnis & StrTyp)
Dateiname_neu = Dateiname
Zeit = FileDateTime(strVerzeichnis & Dateiname)
Do While Dateiname „“
If Zeit " & Dateiname_neu & „“
.Display
End With

End Sub

Okay habe es geschafft.

Vielen Dank an alle :smile:

Beste Grüße Florian