Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Laufzeitfehler 5
#1
Hallo zusammen,

habe eine seltsames Problem und hoffe Ihr könnt mir helfen! :)

Folgenden Code nutze ich schon seit Jahren ohne Probleme, erst seit ca. halben Jahr kommt es immer wieder zu einem Laufzeitfehler 5  - Ungüliter Prozeduraufruf oder ungültiges Argument.

Code:
Private Sub PDFperMail()
Wahl = MsgBox("Auftrag senden?", vbYesNo)
If Wahl <> 6 Then Exit Sub
    ActiveSheet.PrintOut copies:=3
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\AUFTRAGE\" & Range("A1").Text & " " & "KL" & Range("I6") & " " & Range("A27"), Quality:=xlQualityStandard, IncludeDocProperties _
        :=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    Dim olApp As Object
    Set olApp = CreateObject("Outlook.Application")
    With olApp.CreateItem(0)
        .GetInspector
        .Recipients.Add Range("A12").Value
        .Subject = Range("A1").Text & " " & "KL" & Range("I6") & " " & Range("A27")
        '.Body = "Avisierung" & Chr(13) & _
                "Mit freundlichen Grüßen" & Chr(13) & Chr(13)
             .ReadReceiptRequested = True
         .Attachments.Add "C:\AUFTRAGE\" & Range("A1").Text & " " & "KL" & Range("I6") & " " & Range("A27") & ".PDF"
        If Range("J1") = "x" Then .display
        If Range("J1") <> "x" Then .Send
        '.Send
        MsgBox ("Auftragwurde erfolgreich gesendet!")
    End With
    Set olApp = Nothing
    Sheets("Übersicht").Select
End Sub

Hat jemand eine Idee warum das jetzt auf einmal nicht mehr funktioniert!

Lieben Dank im voraus
Alexandra
Antworten Top
#2
Hallo,

ich nehme an, das geschieht wegen der falschen Verwendung der GetInspector-Eigenschaft des MailItem-Objektes, die du wie eine Methode des MailItem-Objektes aufrufst. Tatsächlich musst du dafür einen Objektzeiger einsetzen, zB. wie folgt:

Dim olInsp As Object
'....
Set olInsp = olApp.CreateItem(0).GetInspector

Code:
Private Sub PDFperMail()
    Dim Wahl As VbMsgBoxResult
   
    Wahl = MsgBox("Auftrag senden?", vbYesNo)
    If Wahl <> vbYes Then Exit Sub
   
    ActiveSheet.PrintOut copies:=3
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:="C:\AUFTRAGE\" & Range("A1").Text & " " & "KL" & Range("I6") & " " & Range("A27"), _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
       
    Dim olApp As Object
    Dim olInsp As Object
    Const olMailItem As Long = 0
   
    Set olApp = CreateObject("Outlook.Application")
   
    With olApp.CreateItem(olMailItem)
        Set olInsp = .GetInspector
        .Recipients.Add Range("A12").Value
        .Subject = Range("A1").Text & " " & "KL" & Range("I6") & " " & Range("A27")
        '.Body = "Avisierung" & Chr(13) & _
                "Mit freundlichen Grüßen" & Chr(13) & Chr(13)
        .ReadReceiptRequested = True
        .Attachments.Add "C:\AUFTRAGE\" & Range("A1").Text & " " & "KL" & Range("I6") & " " & Range("A27") & ".PDF"
        If Range("J1") = "x" Then .display False
        If Range("J1") <> "x" Then .Send
        '.Send
        MsgBox ("Auftragwurde erfolgreich gesendet!")
    End With
   
    Set olApp = Nothing
    Sheets("Übersicht").Select
   
End Sub
Mit lieben Grüßen
Anton.

Windows 10 64bit
Office365 32bit
Antworten Top
#3
Hallo Anton,

leider gleicher Laufzeitfehler 5. Noch andere Ideen?

DAnke
Alexandra
Antworten Top
#4
Hallo zusammen,

hat niemand eine Idee/Lösung für mein Problem? :)

Vielen lieben Dank
LG
Alexandra
Antworten Top
#5
Code:
Private Sub M_snb()
    c00="C:\AUFTRAGE\" & Range("A1").Text & " KL" & Range("I6") & " " & Range("A27")
    ActiveSheet.ExportAsFixedFormat 0, c00

    With CreateObject("Outlook.Application").CreateItem(0)
      .To =  Range("A12").Value
      .Subject = mid(c00,13)
      .Body = "Advisierung" & Chr(13) & "Mit freundlichen Grüßen"
      .Attachments.Add c00
      .Send
    End With
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#6
Hallo snb,

vielen Dank für den modifizierten Code! :)
Deutlich kürzer als meiner! Habe hier noch hinter ".Attachments.Add c00" ein & ".pdf" hinzugefügt :) dann läuft der Code weiter aber bei ".send" bleibt er auch wieder hängen mit dem gleichen Laufzeitfehler 5 und hier wird auch keine Signatur eingefügt!?

Oder übersehe ich etwas?

Vielen Dank & LG
Alexandra
Antworten Top
#7
Hallo Alexandra,

du schreibst, dass es IMMER WIEDER zu diesen Poblemen kommt. Was heist das genau? Immer mal wieder unverhofft, oder eigentlich immer? Als nächstes wäre auch hilfreich unter welchen Voraussetzungen der Fehler auftritt, oder zumindest ein Screenshot vom Debugger.

Damit eine Autosignatur angezeigt wird, braucht es den Inspektor. Wird dieser weggelassen gibt's keine Signatur, deswegen ist der modifizierte Code zu einfach gefasst.

Kannst du deine Datei hochladen, oder ein Beispiel davon? Vom reinen Anschauen her, sieht der Code erstmal gut aus....hat ja auch seit Jahren funktioniert Smile
Antworten Top
#8
Hallo Janush,

anbei der gewünschte Screenshot vom Debugger meines ursprünglichen Codes, musste etwas unkenntlich machen, da der Firmenname immer mit angegeben ist. :)

Der Code bleibt immer hängen, wenn in J1 kein "x" drin steht, dann sollte nämlich das Mail beim Auslösen des Codes versendet werden, ohne daß sich das Mail öffnet, also für den User nicht wirklich sichtbar.
Also Button drücken,  Mail wird versendet, MsgBox erscheint mit Erfolgsmeldung und alles gut. Und das hat früher ohne Probleme funktioniert.
Wenn in J1 ein "x" drin steht, dann öffnet sich das Mail bevor ich es versenden kann, und kann in das Mail noch etwas Text dazuschreiben, falls notwendig und dann auf Senden im Outlook. So funktioniert es weiterhin ohne Probleme. Nur wenn eben J1 <> "x" dann bleibt der Code immer hängen mit Laufzeitfehler 5, an der Stelle ".send", siehe Screenshot.

Vielen Dank schon im Voraus
LG
Alexandra


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#9
Hallo Alexandra,

und wenn du die Codestelle wie folgt umbaust?

If Range("J1") = "x" Then
     .display
Else
     .send
End If
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Antworten Top
#10
Hallo Günter,

danke für dein Vorschlag, leider das gleiche Ergebnis! :(

Hat noch jemand eine Idee woran das liegen kann und wie ich das beheben kann?

Vielen lieben Dank im Voraus
LG
Alexandra
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste