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

Forumthread: Link der Excel-Datei per VBA verschicken

Link der Excel-Datei per VBA verschicken
28.11.2018 11:25:54
Julia
Hallo liebe Community,
bisher war ich nur stille Mitleserin, die sich hier schon viele Tipps holen konnte.
Aber dieses Mal komme ich nicht recht weiter. Vielleicht kann mir jemand helfen.
Folgende Problemstellung die händisch einwandfrei funktioniert und ich aber leider nicht wirklich eine Idee habe, wie genau ich das per VBA umsetzen kann.
Ich möchte eine Excel-Datei die zentral auf abgespeichert wird (auf einem SharePoint) per Link als Email verschicken und das ganze per Klick auf einen Button.
Händisch klappt das einwandfrei: Datei - Freigeben - E-Mail - Einen Link senden
GENAU DAS würd ich gern per VBA ausführen mit einem Klick auf einen Button. Kann mir jemand bei der Umsetzung helfen?
Ich habe schon versucht diesen Vorgang per Makrorekorder aufzuzeichnen, aber da zeichnet es leider nichts auf.
Schöne Grüße
Julia
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Link der Excel-Datei per VBA verschicken
30.11.2018 09:04:25
Bernd
Hallo Julia,
so in der Art?

Sub Mailversand()
Dim MyOutApp As Object
Dim MyMessage As Object
Set MyOutApp = CreateObject("Outlook.application")
Set MyMessage = MyOutApp.createitem(0)
With MyMessage
.To = "Max.Mustermann@Firma.com"
.cc = "Meine.Mailadresse@Firma.com"
.Subject = "Titel"
.Body = "Nachricht" & Chr(13) & "file:" & ThisWorkbook.FullName
.Display
'.Send
End With
Set MyMessage = Nothing
Set MyOutApp = Nothing
End Sub
Grüße, Bernd
Anzeige
AW: Link der Excel-Datei per VBA verschicken
30.11.2018 12:56:30
Julia
Hallo Bernd,
werd ich ausprobieren, danke :)
LG Julia
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel-Datei per VBA als Link versenden


Schritt-für-Schritt-Anleitung

Um eine Excel-Datei per VBA als Link zu versenden, kannst du die folgenden Schritte befolgen:

  1. Öffne die Excel-Datei, die du per Link versenden möchtest.

  2. Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  3. Füge ein neues Modul hinzu:

    • Klicke im Menü auf Einfügen > Modul.
  4. Kopiere den folgenden VBA-Code in das Modul:

    Sub Mailversand()
       Dim MyOutApp As Object
       Dim MyMessage As Object
    
       Set MyOutApp = CreateObject("Outlook.Application")
       Set MyMessage = MyOutApp.CreateItem(0)
    
       With MyMessage
           .To = "Max.Mustermann@Firma.com"
           .Cc = "Meine.Mailadresse@Firma.com"
           .Subject = "Titel"
           .Body = "Hier ist der Link zur Excel-Datei: " & vbCrLf & "file://" & ThisWorkbook.FullName
           .Display
           '.Send 'Entferne das Kommentarzeichen, um die Mail sofort zu senden
       End With
    
       Set MyMessage = Nothing
       Set MyOutApp = Nothing
    End Sub
  5. Ändere die E-Mail-Adressen im Code nach Bedarf.

  6. Speichere den Code und schließe den VBA-Editor.

  7. Füge einen Button in deine Excel-Oberfläche ein, um das Makro auszuführen:

    • Gehe zu Entwicklertools > Einfügen > Button (Formularsteuerung).
    • Ziehe den Button auf das Arbeitsblatt und wähle das Makro Mailversand aus.

Jetzt kannst du durch Klicken auf den Button die Excel-Datei als Link versenden.


Häufige Fehler und Lösungen

  • Fehler: Outlook öffnet sich nicht
    Lösung: Stelle sicher, dass Outlook korrekt installiert und als Standard-Mail-Client eingerichtet ist.

  • Fehler: E-Mail wird nicht gesendet
    Lösung: Überprüfe, ob die Zeile .Send im Code nicht auskommentiert ist, falls du die E-Mail direkt senden möchtest.

  • Fehler: Link zur Datei ist nicht korrekt
    Lösung: Achte darauf, dass die Datei auf einem freigegebenen Speicherort (z.B. SharePoint) gespeichert ist und der Link korrekt formatiert ist.


Alternative Methoden

  • Direktes Versenden über Outlook: Du kannst die Datei auch direkt aus Excel freigeben, indem du Datei > Freigeben > E-Mail > Einen Link senden wählst. Dies ist jedoch manuell und nicht automatisiert per VBA.

  • Verwendung von Power Automate: Wenn du regelmäßig Excel-Dateien per Link versenden musst, könnte Power Automate (ehemals Microsoft Flow) eine automatisierte Lösung bieten.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du die Funktion anpassen kannst, um den Link zu einer bestimmten Excel-Tabelle zu versenden:

Sub MailversandTabelle()
    Dim MyOutApp As Object
    Dim MyMessage As Object

    Set MyOutApp = CreateObject("Outlook.Application")
    Set MyMessage = MyOutApp.CreateItem(0)

    With MyMessage
        .To = "Empfänger@Firma.com"
        .Subject = "Link zur Excel-Tabelle"
        .Body = "Hier ist der Link zu meiner Excel-Tabelle: " & vbCrLf & "file://" & ThisWorkbook.FullName & "#Tabelle1"
        .Display
    End With

    Set MyMessage = Nothing
    Set MyOutApp = Nothing
End Sub

Mit diesem Code versendest du einen Link zu einer bestimmten Tabelle (Tabelle1) innerhalb deiner Excel-Datei.


Tipps für Profis

  • Verwende Variablen für E-Mail-Adressen: Wenn du häufig an verschiedene Empfänger sendest, speichere die E-Mail-Adressen in Variablen, um den Code flexibler zu gestalten.

  • Fehlerbehandlung einfügen: Implementiere eine Fehlerbehandlung, um sicherzustellen, dass dein Makro robust ist und bei Problemen nicht abstürzt.

  • Testen in einer sicheren Umgebung: Teste dein Makro zuerst in einer Testumgebung, bevor du es in der Produktion einsetzt, um sicherzustellen, dass alles funktioniert.


FAQ: Häufige Fragen

1. Kann ich mehrere Links in einer E-Mail versenden?
Ja, du kannst mehrere Links hinzufügen, indem du sie im .Body des E-Mail-Objekts einfach hintereinander schreibst.

2. Ist es möglich, den Link zu einer bestimmten Zelle zu senden?
Ja, du kannst den Link zu einer bestimmten Zelle in der Excel-Datei erstellen, indem du den Zellbezug im Link-Format hinzufügst, z.B. #Tabelle1!A1.

3. Welche Excel-Version benötige ich für VBA?
VBA ist in den meisten modernen Excel-Versionen verfügbar, einschließlich Excel 2010, 2013, 2016 und 365.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige