Problem mit digitaler Signatur

  • Excel

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

    Problem mit digitaler Signatur

    Hallo zusammen,

    ich habe eine relativ komplexe Anwendung in Excel erstellt.
    Um den Code zu schützen, ist er mit einem Zertifikat von Veri Sign ausgestattet.
    Nun ergibt sich folgendes Problem:
    Man hat in der Anwendung die Möglichkeit über einen Button ein Tabellenblatt zu kopieren.
    Hierbei wird per VBA das aktuelle Tabellenblatt, ohne seine Inhalte (Texte, Formeln usw...) kopiert. Es wird also nur die Formatierung und der auf dem Blatt hinterlegte VBA-Code übernommen.
    Wenn man die Datei nun speichern will, kommt die Meldung, dass die digitale Signatur verworfen wird. Dies liegt daran, dass auf dem kopierten Tabellenblatt der VBA-Code erzeugt wird, somit wird das ursprüngliche Codeing verändert. Dies ist jedoch so gewollt und nötig.

    Daher meine Frage:
    Gibt es irgendeine Möglichkeit, das von mir beschriebene Problem zu lösen/zu umgehen?


    Vielen Dank schonmal für eure Hilfe,

    rex
    Man kann mit

    Visual Basic-Quellcode

    1. Application.DisplayAlerts = False


    alle Fehlermeldungen abschalten. Als Vorteil sehe ich das allerdings nicht unbedingt. Da kommen dann auch keine Nachfragen wegen Dateiüberschreiben, oder speichern beim beenden mehr. Evtl. Im BeforeSave abschalten und nach dem Speichern gleich wieder einschalten.

    Hinzu kommt, dass ich nicht weiß, ob die Meldung überhaupt damit abgeschaltet werden kann. Ob evtl. auch ein

    Visual Basic-Quellcode

    1. On Error Resume Next
    geht, weiß ich ebenfalls nicht. Ich arbeite nicht mit SIgnaturen. Andere Fehler lassen sich dann mittels

    Visual Basic-Quellcode

    1. err.number
    2. err.description
    manuell anzeigen. In jedem Fall mit

    Visual Basic-Quellcode

    1. err.clear
    Fehler löschen, falls es welche gibt.
    Gruß
    Peterfido

    Keine Unterstützung per PN!
    Fehlerunterdrückung wird nicht helfen, da die digitale Signatur trotzdem verlorengeht.

    Die einzige Möglichkeit sehe ich in der Methode, auf dem zu kopierenden Sheet keinen Code zu halten.
    Bei normalem Code ist es kein Problem, diesen in andere Module oder Klassen auszulagern.

    Interessant wird es bei Ereignis-Handlern (z.B. Button-Klick).
    Auch das geht, ist aber etwas aufwendiger.
    Zauberwort: WithEvents

    So wie du die Apllication-Ereignisse (für die es ja keine Built-In-Handler gibt) abfangen kannst, kannst du auch Worksheet-Events abfangen.
    Das Abfangen von Application-Events ist hier rudimentär beschrieben:
    vb-fun.de/vb/kurztipps/kt0040.htm#events

    Abstrahieren auf Worksheet-Events musst du es selbst.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Sicher geht die Signatur verloren. Für mich klingt es so, als ob die Fehlermeldung an sich bloß stört, da dort steht, Problem: die Meldung kommt. Sonst hätte da gestanden, dass das Problem ist: die Signatur wird verworfen.
    Gruß
    Peterfido

    Keine Unterstützung per PN!

    peterfido schrieb:

    Für mich klingt es so, als ob die Fehlermeldung an sich bloß stört

    Wenn dem so ist, dann kann relativ einfach geholfen werden (wie du schon schriebst).
    Allerdings könnte man dann die Codesignatur gleich weg lassen, dann kommt die Meldung auch nicht :)

    Was tatsächlich gemeint ist, muss wohl der Threadersteller nochmals detaillieren.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    petaod schrieb:

    Fehlerunterdrückung wird nicht helfen, da die digitale Signatur trotzdem verlorengeht.

    Die einzige Möglichkeit sehe ich in der Methode, auf dem zu kopierenden Sheet keinen Code zu halten.
    Bei normalem Code ist es kein Problem, diesen in andere Module oder Klassen auszulagern.

    Interessant wird es bei Ereignis-Handlern (z.B. Button-Klick).
    Auch das geht, ist aber etwas aufwendiger.
    Zauberwort: WithEvents

    So wie du die Apllication-Ereignisse (für die es ja keine Built-In-Handler gibt) abfangen kannst, kannst du auch Worksheet-Events abfangen.
    Das Abfangen von Application-Events ist hier rudimentär beschrieben:
    vb-fun.de/vb/kurztipps/kt0040.htm#events

    Abstrahieren auf Worksheet-Events musst du es selbst.

    Nach genau so einer Möglichkeit habe ich gesucht! Die Signatur soll nicht verworfen werden, sondern erhalten bleiben. (Da habe ich mich nicht genau ausgedrückt, stimmt.)

    Ich werde mir den Link mal genauer ansehen, vielen Dank erstmal.

    rex schrieb:

    petaod schrieb:

    Fehlerunterdrückung wird nicht helfen, da die digitale Signatur trotzdem verlorengeht.

    Die einzige Möglichkeit sehe ich in der Methode, auf dem zu kopierenden Sheet keinen Code zu halten.
    Bei normalem Code ist es kein Problem, diesen in andere Module oder Klassen auszulagern.

    Interessant wird es bei Ereignis-Handlern (z.B. Button-Klick).
    Auch das geht, ist aber etwas aufwendiger.
    Zauberwort: WithEvents

    So wie du die Apllication-Ereignisse (für die es ja keine Built-In-Handler gibt) abfangen kannst, kannst du auch Worksheet-Events abfangen.
    Das Abfangen von Application-Events ist hier rudimentär beschrieben:
    vb-fun.de/vb/kurztipps/kt0040.htm#events

    Abstrahieren auf Worksheet-Events musst du es selbst.

    Nach genau so einer Möglichkeit habe ich gesucht! Die Signatur soll nicht verworfen werden, sondern erhalten bleiben. (Da habe ich mich nicht genau ausgedrückt, stimmt.)

    Ich werde mir den Link mal genauer ansehen, vielen Dank erstmal.
    Ich habe mein Projekt jetzt so umgebaut, dass kein Code mehr auf dem Tabellenblatt, dass kopiert werden soll, hinterlegt ist.
    Das Problem, dass die Signatur beim Speichern verloren geht, besteht jedoch weiterhin.
    Hat jemand noch eine Idee woran dies liegen könnte? Zählt das Einfügen eines neuen Tabellenblattes in eine Mappe schon als Änderung, wegen der die Signatur verworfen wird?
    Vielen Dank schonmal für eure Hilfe.