Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Benutzerdefinierte Fehlermeldungen + Excel

    Betrifft: Benutzerdefinierte Fehlermeldungen + Excel von: Daniel
    Geschrieben am: 02.10.2003 12:52:58

    Hallo nochmal,

    nachdem mir jetzt auf meine Letzte Frage so gut geholfen worden ist, ist mir auch gleich die 2. gekommen:

    Kann man es mit VBA realisieren, das man benutzerdefinierte Fehlermeldungen in Excel anzeigen lassen kann. Ich möchte die "Blattschutz Information(Fehlermeldung)" abfangen, und stattdessen meinen eigenen Text anzeigen lassen. z.b.: In der Form:

    Zum Ändern der geschützen Zelle, bitte F6 drücken...

    (Auf F6 liegt ein Code, der den Schutz kurz aufhebt und dann den Wert ändert)

    Leider habe ich jetzt keine Ahnung wie ich da überhaupt anfangen soll...


    Mfg Daniel

      


    Betrifft: AW: Benutzerdefinierte Fehlermeldungen + Excel von: Manuel
    Geschrieben am: 02.10.2003 13:06:04

    Hallo.

    Um eingene Fehlermeldungen in Subs zu erzeugen gehst Du wie folgt vor:

    Zuerst sagst Du VBA mit dem Befehl -> On Error Goto Sprungmarke <-.
    Wenn dann ein Fehler Auftritt springt VBA zu dieser Sprungmarke.
    Alternativ gibt es auch noch -> On Error Reume Next <-, damit wird die Fehlerhafte Zeile einfach ignoriert.

    Diese Einstellungen gelten bis sie durch eine andere "on-Error"-Zeile überschrieben werden, bzw. bis Du sie mit -> On Error Goto 0 <- wieder löschst...


      


    Betrifft: AW: Benutzerdefinierte Fehlermeldungen + Excel von: Daniel
    Geschrieben am: 02.10.2003 13:10:14


    Leider erzeuge ich die Abfrage nicht in einer Sub

    Die Fehlermeldung bzw das Infofenster das Excel mit Zeigt (Zellschutz) ist Excel-Intern (nehme ich doch mal an) und nicht einen eigenen VBA Code erzeugt.
    Und genau diese Meldung will ich eben "abfangen" und ersetzen.

    Mfg

    Daniel


      


    Betrifft: AW: Benutzerdefinierte Fehlermeldungen + Excel von: Manuel
    Geschrieben am: 02.10.2003 13:10:40

    Habe mich vertippt, muss eigentlich -> On Error Resume Next <- heissen...


      


    Betrifft: AW: Benutzerdefinierte Fehlermeldungen + Excel von: th.heinrich
    Geschrieben am: 02.10.2003 14:09:52

    hallo Daniel,

    stehe in VBA zwar auf der nach oben offenen Herberskala im negativen bereich ;-)

    probiers mal mit Application.DisplayAlerts = False und gebe Deine warnung mittels Msgbox aus.
    am ende des MAKROS wieder auf TRUE setzen.

    gruss thomas

    ps. bereits vorhandener CODE kann nicht schaden.


      


    Betrifft: AW: Benutzerdefinierte Fehlermeldungen + Excel von: Daniel
    Geschrieben am: 02.10.2003 14:37:28


    Hmm, die Fehlermeldungen global Abzuschlalten ist ne möglichkeit, nur wie sage ich Excel jetzt, bringe mir meine eigene Fehlermeldung und nicht die Standartmeldung

    Dazu bräuchte ich doch so ne art Fehlercode den ich Abfragen/ Abfangen könnte.


    Habe aber deinen Tip trotzdem mal ausprobiert, und Application.DisplayAlerts = False in
    Diese Arbeitsmappe unter der Funktion: Private Sub Workbook_Activate()
    abgelegt.

    Nach erneutem öffnen der Arbeitsmappe hatte ich aber die Meldungen immenoch.

    In dem Sinne sind es ja auch keine Richtigen Fehlermeldungen, eher ein Hinweis.

    Mfg

    Daniel


      


    Betrifft: AW: Benutzerdefinierte Fehlermeldungen + Excel von: th.heinrich
    Geschrieben am: 02.10.2003 15:41:03

    hi Daniel,

    war nur ne anregung, weil ich beim lesen im Forum oefters daraufgestossen bin.

    vielleicht kommst Du ueber GOOGLE weiter. diesen suchbegriff eingeben.

    "Fehlermeldung unterdrücken" site:www.herber.de

    kannst Du natuerlich noch variieren.

    gruss thomas

    ps. und wie schon gesagt: vorhandenen CODE posten kann nicht schaden.


      


    Betrifft: AW: Benutzerdefinierte Fehlermeldungen + Excel von: Matthias G
    Geschrieben am: 02.10.2003 18:02:18

    Hallo Daniel,
    die Blattschutz-Meldung kannst Du nicht unterdrücken, es sei denn, Du verzichtest auf den Blattschutz und fängst Änderungen mit dem Change-Ereignis ab:
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    MsgBox "Änderungen nicht möglich! F6 drücken!"
    Application.EnableEvents = False
    Application.Undo
    Application.EnableEvents = True
    End Sub
    

    Alle Änderungen über Makro (z.B. mit deiner F6-Taste) müssten dann mit Application.EnableEvents = False eingeleitet und mit Application.EnableEvents = True abgeschlossen werden.
    Der Verzicht auf den Blattschutz hat aber einige Nachteile, die Du nur mit einigem Aufwand abwenden kannst:
    Änderung der Zellhöhe/Spaltenbreite, unerwünschtem Formatieren von Text, Manuellem Abschalten der Events (im Direktfenster "Application.EnableEvents = False" eingeben und dein Schutz ist weg),...
    Es kommt darauf an, wie sicher das Ganze sein soll.

    Grundsätzlich geht das mit der Gültigkeitsabfrage im Change-Ereignis aber meiner Ansicht nach recht komfortabel: Du kannst Änderungen je nach Benutzer oder anderer Parameter zulassen, korrigieren oder unterdrücken, ganz nach belieben.
    Wichtig ist noch, vor dem Speichern den Blattschutz zu setzen, und mit der Workbook_Open-Prozedur wieder zu entfernen, so kann ein Benutzer, der die Makros deaktiviert hat, keine Veränderungen vornehmen.

    Ich habe einen ganzes Dienstplanprogramm geschrieben und auf den Blattschutz verzichtet, das funktioniert recht gut. Und jede falsche/unerlaubte Eingabe bekommt seine eigene Fehlermeldung.

    Viele Grüße,
    Matthias


     

    Beiträge aus den Excel-Beispielen zum Thema " Benutzerdefinierte Fehlermeldungen + Excel"