Fehlermeldung im Menü

  • Hallo liebe Spezialisten,

    ich bin neu hier im Forum und habe ein kleines Menue geschrieben,

    (vielmehr zusammen kopiert).

    Wenn ich mit F5 laufen lasse geht es ohne Probleme.

    Wenn es kompiliert ist kommt die Fehlermeldung wie Bild1.jpg.

    Hier mein Quelltext:


    Vielleicht ist jemand so nett und schaut sich das mal an.

    Rückmeldung bitte so das ich es auch als kompletter Anfänger verstehe.

    Ich bedanke mich im Voraus schon mal bei Euch

    und wünsche Euch einen guten Rutsch ins neue Jahr.



    Gruß Windi


    EDIT BugFix: Code in Tags gesetzt und formatiert.

  • Hallo Oscar,

    vielen Dank für deine schnelle Antwort.

    Mit ControClick habe ich es auch schon versucht.

    Kriege ich mangelnder Kentnisse nicht hin.

    Excel 97 ist installiert und das VBA Modul läuft einwandfrei.

    Nur wenn Excel beendet wird von VBA, kommt die Fehlermeldung.

    Mit F5 kommt die Fehlermeldung nicht.


    MfG. Windi

  • Nur als Hinweis: AutoIt kommt mit einer eingebauten Excel UDF. Somit brauchst Du Dich um das Excel-Zeug nicht mehr zu kümmern. _Excel_* Funktionen in der Hilfe-Datei geben Dir einen überblick.
    Oder das wiki im eng. Forum

  • Vielen Dank für die Antworten und alles Gute im neuen Jahr.

    Wie oben schon beschrieben:

    Wenn ich mit F5 laufen lasse geht es ohne Probleme.

    Wenn es kompiliert ist kommt die Fehlermeldung wie Bild1.jpg.

    Es läuft ja alles Excel Makro wird aufgerufen, bearbeitet und wieder geschlossen.

    Die Fehlermeldung kommt wenn Excel geschlossen ist, also kann es nicht an Excel liegen.

    Kann man die Fehlermeldung irgendwie abfangen und mit exit beenden.

    Wenn bei meinen Kollegen eine Fehlermeldung erscheint, höre ich alle 3 Tage

    da steht was auf dem Bildschirm.

    "Was muss ich jetzt machen."

  • Kann man die Fehlermeldung irgendwie abfangen und mit exit beenden.

    Du könntest einen COM Error Handler einbauen (einfach mal googlen).


    Ich würde aber dringend den Rat von water beherzigen, und die <excel.au3> verwenden.

    Siehe Hilfe oder https://www.autoitscript.com/wiki/Excel_UDF


    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Wobei Excel 97 natürlich uralt ist - ob die Excel UDF dagegen getestet wurde? Keine Ahnung :/

  • Habs versucht komme nicht mit Excel UDF.

    Wie oben beschrieben absoluter Anfänger.

    Ich bräuchte schon ein Beispiel:


    Auch ControlClick habe ich probiert weiß nicht was ich wo hinschreiben soll.

    Habs mit Wininfo probiert.


    Vielen Dank für eure Bemühungen.

    Es hängt wahrscheinlich damit zusammen, dass ich einer der ältesten hier im Forum bin (66 Jahre)

    und kein Englisch kann.

  • Excel UDF : Ich bräuchte schon ein Beispiel :

    [...]

    Die Fehlermeldung kommt wenn Excel geschlossen ist, also kann es nicht an Excel liegen.

    Kann man die Fehlermeldung irgendwie abfangen und mit exit beenden.

    Leider habe ich kein Excel auf meinem PC, daher ist das hier ein Schuss in's Blaue ;).


    Du solltest mit einem Minimalskript testen, welches sich ausschließlich mit dem Abfangen der Fehlermeldung beschäftigt ! Automatisierungen kannst Du später (wieder) hinzufügen, wenn es läuft.


    Was kommt dabei heraus ? :


    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Local $oExcel = _Excel_Open()

    Local $oWorkBook = _Excel_BookOpen($oExcel, "C:\DHL-Versand\Versand.xlsm")

    Exit


    Habe es so eingefügt.

    Wie kann ich nach dem öffnen von Excel die GUI beenden.

    Excel wird durch das Makro beendet.

    Ich denke hier liegt der Fehler.


    Gruß Windi

  • Danke, Danke! Läuft fehlerfrei auch compiliert. Wo muss ich jetzt meine Makro Datei einsetzen (Versand.xlsm) brauche ich den Run Befehl nicht mehr.

    Das mit dem Dateityp .xlsm ist mir noch unklar (wie gesagt, ich arbeite ohne Excel - also blind =O).

    .Workbooks.Open ("C:\DHL-Versand\Versand.xlsm")


    -> Unter Dateiformate steht :

    Microsoft Excel ab 2007 und 2008 erstellen standardmäßig Dateien mit den Dateiendungen .xlsx (Excel Spreadsheet) oder .xlsm (Excel Spreadsheet mit Makros).

    Die von älteren Versionen erstellten Dateien haben die Dateiendung .xls (Excel Spreadsheet), .xla (Excel Add-ins) und .xlt (Excel-Vorlagen).

    (Excel 97 hat intern die Versionsnummer 8.0 - siehe : Microsoft_Excel )


    Ohne Gewähr :

    (den COM Errorhandler habe ich auskommentiert -> kannst Du ja mal aktivieren)


    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Danke für die schnelle Meldung,

    jetzt kannst du mal was von dem alten Mann lernen.

    Excel 2007 hat als normale Datei *.xls

    und *.xlsm sind Dateien die über VBA mit Makros und

    Userforms automatisiert werden.

    In meinem Fall werden aus einer Access Kunden und Auftragsverwaltung (Kaufsoftware)

    Aufträge als Excel Datei gespeichert und über Makro mit Barcode versehen.

    Da es verschiedene Punkte gibt, die Ähnliche Exceldateien speichern

    möchte ich das mit Autoit lösen.


    Dein Script läuft perfekt Excel wird geöffnet und auch wieder geschlossen.


    Gruß Windi

  • jetzt kannst du mal was von dem alten Mann lernen.

    Ich hatte nur kurz die Extension .xlsm auf Wikipedia gecheckt - da stand das so drin (s.o.).

    Neues zu lernen stört mich nicht, egal ob von alten oder jungen Männern/Frauen/Klingonen usw. - sobald man damit aufhört ist eh Schicht im Schacht :P. Nebenbei : Uns trennen gerade mal 10 Jahre !

    Dein Script läuft perfekt Excel wird geöffnet und auch wieder geschlossen.

    Freut mich :).

    Wenn Du Dein Skript fertig hast, kannst Du es ja noch mal posten.

    So muss z.B. Dim $objXL nicht innerhalb der While-Schleife deklariert werden. Außerdem würde ich eine Deklaration mittels Global / Local vorziehen.


    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Hallo Musashi,

    Die Fehlermeldung bleibt weiterhin.

    Ich vermute mal das es ein Excel Problem ist.

    Ich öffne das Excelmakro in Autoit.

    Dann wird in Excel alles automatisch abgearbeitet.

    Zum Schluß wird Excel per Makro beendet.

    Und dann kommt die Fehlermeldung.

    Deshalb gehe ich davon aus das Autoit nicht richtig beendet wird

    und noch im Speicher ist.

    gibt es eine Möglichkeit Autoit nach dem aufruf von Excel zu beenden.

    Ich habe ja Exit nach dem Aufruf von Excel gesetzt.


    Irgendwie habe ich da einen Denkfehler drin.


    Gruß Windi

  • Ich öffne das Excelmakro in Autoit. Dann wird in Excel alles automatisch abgearbeitet.

    Dieser Teil funktioniert ja offenbar, korrekt ?

    Zum Schluß wird Excel per Makro beendet. Und dann kommt die Fehlermeldung.

    Was passiert, wenn Du das AutoIt-Skript direkt nach Aufruf des Makros verlässt ?

     Else

       $oWorkbook.parent.run("Versand") ; Name des Makros

       exit

    EndIf

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Eine XLSM Datei beinhaltet Makros. Bestimmte Makro werden automatisch ausgeführt: Workbook_Open oder Auto_Open.
    Wenn das Makro Excel beendet, dann braucht AutoIt nach _Excel_BookOpen nichts mehr zu tun.