InputBox Fehler

  • Word

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Sam85.

    InputBox Fehler

    Hallo,

    ich bekomme eine Fehlermeldung wenn ich versuche das Makro über einen RibbonButton zu starten. Wenn ich es aber aus dem Editor starte klappt es.
    Leider sagt die Fehlermeldung auch nicht wirklich viel. Muss ich die InputBox irgendwie anders ansprechen? Oder kennt jemand zufällig das Problem?
    Oder liegt der Fehler sogar ganz woanders? ?(

    VB.NET-Quellcode

    1. Option Explicit
    2. Dim name, pdf As String
    3. Dim olApp, olMail As Object
    4. Sub Email()
    5. name = InputBox("Bitte den Dateinamen eintragen")
    6. ThisDocument.ExportAsFixedFormat _
    7. OutputFileName:=name, _
    8. ExportFormat:=wdExportFormatPDF, _
    9. OpenAfterExport:=False, _
    10. Range:=wdExportAllDocument
    11. Set olApp = CreateObject("Outlook.Application")
    12. Set olMail = olApp.CreateItem(0)
    13. pdf = ThisDocument.Path & "\" & name & ".pdf"
    14. With olMail
    15. .Display
    16. .attachments.Add pdf
    17. End With
    18. Set olApp = Nothing
    19. Set olMail = Nothing
    20. End Sub

    Bilder
    • Fehler.PNG

      2,66 kB, 249×165, 393 mal angesehen
    Auf den ersten Blick fällt mir nur auf, dass dies eigentlich die falsche Reihenfolge ist.

    Sam85 schrieb:

    With olMail
    .Display
    .attachments.Add pdf
    End With
    Erst solltest du das Attachment in die Mail packen, bevor du sie zum Verschicken anzeigst.

    In welcher Zeile bleibt denn der Debugger stehen?
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Wird mir nicht angezeigt, es kommt nur der Fehler und dann klick ich OK aber ich komm nicht in den Editor sondern bleibe im Word Dokument.
    Und wie gesagt, starte ich das Modul im Editor läuft alles Rund.
    Hab auch mal was du gesagt hast gedreht, kommt aber dennoch die Fehlermeldung.

    und das kommt bei Hilfe
    msdn.microsoft.com/de-de/libra…ce.Version%3dv16)&rd=true

    EDIT: Ich glaube es liegt am Pfad. Kann ich den PDF Pfad beim Export explizt definieren? (Zumindest vermute ich jetzt mal das es daran liegt) :)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Sam85“ ()

    Hallo,

    wieso ThisDocument? Im Ribbon sind "allgemeine" Makros. Also zuerst das aktuelle Dokument auslesen zu zuweisen. Allgemeine Makros habe ich in einer extra Datei oder normal.dot abgespeichert.

    ungetestet:

    Visual Basic-Quellcode

    1. dim objDok as document'oder object
    2. set objdok = activedocument
    3. with objdok
    4. ...
    5. ...
    6. ...
    7. end with
    8. set objdok = nothing


    ansonsten Variable nach jedem Befehl hochzählen und zwischen den Befehlen per debug.print ausgeben. Dann weißt du evtl. schnell, wo es hakt.
    Gruß
    Peterfido

    Keine Unterstützung per PN!
    @peterfido
    ja diese Normal Datei habe ich (da speichere ich auch meine Makros).
    Hab es auf ActiveDocument geändert...leider immer noch derselbe Fehler.
    Vielleicht kannst du mir kurz erklären wie du das mit dem hochzählen und dem debug meinst, dann probiere ich das mal aus.

    VB.NET-Quellcode

    1. Option Explicit
    2. Dim user, name, pfad, pdf As String
    3. Dim olApp, olMail As Object
    4. Dim aDoc As Document
    5. Sub Mail()
    6. user = Environ("UserName")
    7. name = InputBox("Bitte den gewünschten Dateinamen eintragen")
    8. pfad = "C:\Users\" & user & "\Documents\"
    9. If name = "" Then Exit Sub
    10. Set aDoc = ActiveDocument
    11. aDoc.ExportAsFixedFormat _
    12. OutputFileName:=name, _
    13. ExportFormat:=wdExportFormatPDF, _
    14. OpenAfterExport:=False, _
    15. Range:=wdExportAllDocument
    16. Set olApp = CreateObject("Outlook.Application")
    17. Set olMail = olApp.CreateItem(0)
    18. pdf = pfad & name & ".pdf"
    19. With olMail
    20. .Attachments.Add pdf
    21. .Display
    22. End With
    23. Set aDoc = Nothing
    24. Set olApp = Nothing
    25. Set olMail = Nothing
    26. MsgBox ("Die Datei <" & name & "> befindet sich jetzt in dem Pfad <" & pfad & ">")
    27. End SubEnd Sub


    EDIT: Hab jetzt auch mal einen Button ins Dokument geladen und das mit verbunden. Läuft auch. ?( Nur nicht direkt aus dem Ribbon. Kann es sein, dass er im Ribbon das ActiveDocument immer als das "Normal" Dokument sieht?
    EDIT v2: Bei Debug.Print kommt gar nichts wenn ich aus dem Ribbon starte, egal auf welche Instanz ich verweise. :(
    EDIT v3: Ok es lag an der Bezeichung der Sub Email()..als ich es mal in Sub Mail() geändert habe, lief es auch aus dem Ribbon heraus.
    Bilder
    • Bild.PNG

      4,09 kB, 572×125, 140 mal angesehen

    Dieser Beitrag wurde bereits 9 mal editiert, zuletzt von „Sam85“ ()

    Hallo,

    debug.print gibt die Infos auf dem Direktfenster aus. Das muss evtl. erst in der IDE aktiviert werden. Da lasse ich mir beim Entwickeln dann Infos ausgeben. Spart das evtl. ständige OK-Klicken bei Messageboxen.
    Z.B. so:

    Visual Basic-Quellcode

    1. Option Explicit
    2. Private Sub Los()
    3. Dim Fehlernr As Long
    4. Dim a As Long, b As Long, c As Long
    5. On Error GoTo Fehler
    6. Debug.Print "Start"
    7. a = 1
    8. Fehlernr = Fehlernr + 1 '1
    9. a = 16548
    10. Fehlernr = Fehlernr + 1 '2
    11. a = 15482
    12. Fehlernr = Fehlernr + 1 '3
    13. b = a / 0
    14. Fehlernr = Fehlernr + 1 '4
    15. a = 1
    16. Fehlernr = Fehlernr + 1 '5
    17. a = 1
    18. Fehlernr = Fehlernr + 1 '6
    19. a = 1.65464861251684E+16
    20. Fehlernr = Fehlernr + 1 '7
    21. Fehler:
    22. If Err.Number <> 0 Then
    23. Debug.Print "Fehler unter " & Fehlernr & " ("; Err.Number & "):" & Err.Description
    24. Err.Clear
    25. Resume Next
    26. End If
    27. On Error GoTo 0
    28. Debug.Print "Ende"
    29. End Sub


    Gibt dann im Direktfenster aus:

    Visual Basic-Quellcode

    1. Start
    2. Fehler unter 3 (11):Division durch Null
    3. Fehler unter 6 (6):Überlauf
    4. Ende
    Gruß
    Peterfido

    Keine Unterstützung per PN!