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

Dateiversand per E-Mail und Outlook

Dateiversand per E-Mail und Outlook
21.10.2021 15:11:12
Obsi
Hallo zusammen,
nachstehendes Makro funktionierte 2 Jahre ohne Probleme, jetzt hat die Firma Office 2019 (hier geht es um Excel und Outlook) und ein Update auf eine neuer Windowsversion und es hängt sich auf.
Den Nutzern wird ein mit VBA gesteuertes Workflow-Eingabeformular zur Verfügung gestellt, wenn die fertig sind, klicken die auf "Versenden", aus der Bearbeitungsdatei werden alle für mich nötigen Informationen in eine neue Excel-Datei kopiert und diese dann per Application.Dialogs(xlDialogSendMail).Show in eine E-Mail eingebettet, Betreff und Empfänger sind auch vorgegeben, nur senden soll der Nutzer selbst. Die Datei wird dann als Mappe?.xlsx verschickt ohne irgendwo vorher gespeichert worden zu sein. Wie gesagt bisher ging das auch problemlos mit Outlook (und vorher Lotus Notes) und Excel 2017.
Jetzt kommt in Outlook der Hinweis Die Datei kann nicht gefunden werden. Überprüfen Sie den Pfad und den Dateinamen. und in Excel Laufzeitfehler 1004 (Allgemeiner E-Mail-Fehler). Der Debugger bleibt in der Zeile Application.Dialogs(xlDialogSendMail).Show[...] stehen.
Das Paradoxe, wenn ich das Makro beende und ein neues Makro ausschließlich mit dem Befehl Application.Dialogs(xlDialogSendMail).Show ausführe, bettet er die Datei in die Mail ein - ohne Fehler. Der VBA befehl ist ja derselbe, wie auf den E-Mail Button in Excel klicken, auch das geht ohne Probleme. Nur eben nicht, wenn der andere Code vorher abgearbeitet wurde.
Jemand ne Idee was das sein kann und ich das beheben kann?

Sub Versenden()
Dim Timestamp As String
Dim Absender As String
Dim Betreff As String
'On Error GoTo Error
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Workbooks.Add
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="XY"
ActiveSheet.EnableSelection = xlUnlockedCells
'Timestamp = ActiveSheet.Cells(2, 13) 'Z,S
Timestamp = Format(Date, "YYYYMMDD") 'NEU
Absender = ActiveSheet.Cells(2, 12) 'Z,S
'Betreff = "Korrekturmeldung von " & Absender & " // Timestamp: " & Timestamp
Betreff = Timestamp & "_Korrekturmeldung von " & Absender 'NEU
Application.Dialogs(xlDialogSendMail).Show 'arg1:="ich", arg2:=Betreff
ActiveWindow.Close savechanges:=False 'Versanddateie
ActiveWorkbook.Close savechanges:=False 'diese Datei
Exit Sub
Error:
MsgBox "Die Korrektur kann nicht versendet werden!" & vbCrLf & vbCrLf _
& "- E-Mail Programm offen?" & vbCrLf _
& "- Keine Popup-Meldungen offen?" & vbCrLf & vbCrLf _
& "- ggf. manuell Melden.", vbOKOnly, "Versand nicht möglich."
Exit Sub
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Dateiversand per E-Mail und Outlook
21.10.2021 15:24:55
Alwin
Hallo,
schau bitte mal nach, was im Betriebssystem als Standardmailer eingetragen ist, da diese Prozedur über den Standardmailer Aufruf läuft. Ich habs mal ausprobiert und mein Standardmailer wird mit allen vorgegebenen Werten geöffnet.
Gruß Uwe
AW: Dateiversand per E-Mail und Outlook
21.10.2021 16:42:44
mumpel
Wenn die Datei nicht gespeichert wurde kann sie Outlook nicht finden. Möglicherweise hat das neue Outlook keinen Zugriff auf die temporäre Datei. Aber suche mal nach CreateObject("Outlook.Application"), das ist flexibler als der SendMail-Dialog.
AW: Dateiversand per E-Mail und Outlook
22.10.2021 10:43:48
Obsi
Hallo,
Danke euch, für Eure Antworten.
Standardmailprogramm ist Outlook, wenn ich ein Makro ausführe, dessen Inhalt ausschließlich Application.Dialogs(xlDialogSendMail).Show enthält, funktioniert es auch mit Outlook und auch ohne die Datei zu speichern, dann kann ich eine ganz neue Mappe per Anhang verschicken. Das muss leider auch so sein, weil ich per Makro nicht in das Dateisystem der Anwender schreiben kann.
Irgendwas im Quellcode vorher muss die Ursache sein, dass es nicht mehr funktioniert.
VG
Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige