Clever-Excel-Forum

Normale Version: Laufzeitfehler 5
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
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
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
Hallo Anton,

leider gleicher Laufzeitfehler 5. Noch andere Ideen?

DAnke
Alexandra
Hallo zusammen,

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

Vielen lieben Dank
LG
Alexandra
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
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
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
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
Hallo Alexandra,

und wenn du die Codestelle wie folgt umbaust?

If Range("J1") = "x" Then
     .display
Else
     .send
End If
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
Seiten: 1 2