Application.ScreenRefresh erzeugt Fehler 438 in Excel 2010

Diskutiere und helfe bei Application.ScreenRefresh erzeugt Fehler 438 in Excel 2010 im Bereich Microsoft Office im Windows Info bei einer Lösung; Meine Prozedur blendet eine InfoBox "Bitte warten…" ein, kurz bevor die Bildschirmaktualisierung ausgeschaltet wird: Call InfoBox '... Dieses Thema im Forum "Microsoft Office" wurde erstellt von DU-CH, 19. November 2017.

  1. DU-CH
    DU-CH Gast

    Application.ScreenRefresh erzeugt Fehler 438 in Excel 2010


    Meine Prozedur blendet eine InfoBox "Bitte warten…" ein, kurz bevor die Bildschirmaktualisierung ausgeschaltet wird:

    Call InfoBox ' Status-InfoBox
    Application.ScreenUpdating = False

    Diese InfoBox wird selbstverständlich am Ende der Prozedur wieder gelöscht.


    Das Problem: die InfoBox erscheint gar nicht, wenn ich den Code ohne Stoppunkt laufen lasse (vielleicht die Tücken des Multitasking…).

    Ich wollte das Problemchen mit dem von Microsoft für Excel 2003 publizierten Code lösen:

    Call InfoBox ' Status-InfoBox

    Application.ScreenRefresh

    Application.ScreenUpdating = False


    Das führt aber zu Fehler 438 - diese Methode existiert offensichtlich in Excel 2010 nicht mehr.

    Folgender WorkAround funktioniert zwar, aber es muss doch sicher eine elegantere Methode geben ? :

    Application.ScreenUpdating = False

    Call InfoBox ' Status-InfoBox

    Application.ScreenUpdating = True

    Application.ScreenUpdating = False


    NB: Einige Programmierer empfehlen für diesen Zweck DoEvents, aber bei mir hilft das überhaupt nicht.
     
  2. Andreas Killer Win User

    Application.ScreenRefresh erzeugt Fehler 438 in Excel 2010

    Mach es so:

    'Box laden

    Load InfoBox

    'Warten bis auf dem Schirm

    Do While Not InfoBox.Visible

    DoEvents

    Loop

    'Bildschirm aus

    Application.ScreenUpdating = False

    Andreas.
  3. Andreas Killer Win User

    Application.ScreenRefresh erzeugt Fehler 438 in Excel 2010

    Danke, jetzt weiss ich wie man DoEvents brauchen kann.

    Aber was tut DoEvents überhaupt, wenn ein einmaliger Aufruf den Bildschirm nicht aktualisiert ?
    RTFM. ;-)

    DoEvents übergibt die Steuerung an das Betriebssystem, damit es andere Ereignisse verarbeiten kann.

    Macht man das in z.B. einer rechenintensiven Schleife nicht, dann steigt die Prozessorlast auf 100% und der Task reagiert nicht mehr.

    Eine Userform ist auch nur ein Fenster (Childwindow) und die erzeugt man nie selber, dafür ruft man einfach eine entsprechende Routine(n) des OS auf. Früher als man noch prozedural alles nacheinander ausgeführt hat (man hatte ja auch nur eine CPU) war das
    alles wurscht., nach dem Aufruf war das Fenster da.

    Da heute ja alles "nebeneinander" (Multitasking) läuft muss man schon mal kucken ob der andere Task (Fenster oder auch Application) schon fertig ist, wenn man bestimmte Zustände/Ergebnisse haben will.

    Es ist durchaus möglich (und in Deinem Fall offensichtlich) das die "Nachricht 'Erzeuge Fenster'" von Windows noch nicht abgearbeitet wurde, daher musst Du in einer Schleife warten und die Kontrolle solange abgeben.

    Für ein "Worst Case" Scenario kann man in Excel auch eine Fehlerbehandlung via

    On Error Goto ErrorHandler

    Application.EnableCancelKey = xlErrorHandler

    einbauen, denn wenn Windows das Fenster nicht erzeugt hängst Du fest. So kann man dann per CTRL-BREAK wiederum von der Tastatur eine Nachricht an das Excel-Fenster schicken und die Schleife wird verlassen.

    Andreas.
  4. DU-CH Win User

    Application.ScreenRefresh erzeugt Fehler 438 in Excel 2010

    Danke, jetzt weiss ich wie man DoEvents brauchen kann.

    Aber was tut DoEvents überhaupt, wenn ein einmaliger Aufruf den Bildschirm nicht aktualisiert ?

    Ich hatte schon an eine Warteschlaufe gedacht - nur verlangsamen solche den Code.

    Daher suchte ich nach einem Befehl, der die Bildschirm-Aktualisierung sofort erzwingt…

    Application.ScreenUpdating = True
    tut zwar den Job, aber ich möchte nicht unbedingt die offensichtlich asynchrone Bildschirmaktualisierung zuerst völlig unnötig deaktivieren und befürchte, dass sonst dieser Befehl irgendwann (nach MS-Updates) einfach übersprungen
     wird, wenn die Routine merkt, dass ScreenUpdating bereits Wahr ist.
  5. kn13 Win User

    Excel 365 VBA Code

    Hallo Andreas,

    vielen Dank, dass Du bereit bist, dich mit meinem Problem zu befassen!

    Ich habe den Code entsprechend geändert, leider kommt bei der Zeile: "With C.SeriesCollection(1).Points(i-1).Format" der Laufzeitfehler 438; Object unterstützt diese Eigenschaft oder Methode nicht.

    Hast Du eine Idee?

    Ich kann die Excel Datei mit dem Diagramm anhängen, falls Du es wünscht?

    Gruss

    kn

    PS: Den Code hat damals (Excel 2010) ein Excel Profi geschrieben. Ich kenne mich ein wenig mit Formeln aus, aber VBA ist leider nicht meine Welt, sorry!
  6. Egbert Homeister Win User

    microsoft outlook 2013 funktioniert nicht mehr das programm wird aufgrund eines problems nicht richtig .....

    Hallo

    oder bisher beste und nachhaltigste Lösung : Office 2010 !

    musste mittlerweile auch auf zwei neuen Rechnern das excel 2013 wieder runterschmeißen und 2010 drauf machen weil unsere Anwendung unter 2013 viele neue völlig unbekannte Fehler erzeugt hat und einfach nicht lief ! Mit 2010 ist alles wieder ok.

    Ich hoffe mal auf 2016 vielleicht geht die ja, wenn nicht, weiß einer ob man auch zwei Versionen überspringen kann ?

    undn Office 365 ist keine Lösung (unsere mess Koffer mit excel müssen ohne Netz laufen)

    mfg

    egbert

    ps: Danke für die Meldungen, so sehe ich das ich nicht allein bin....
  7. User Advert


    Hi,

    willkommen im Windows Forum!
Thema:

Application.ScreenRefresh erzeugt Fehler 438 in Excel 2010 - Microsoft Office

Die Seite wird geladen...

Application.ScreenRefresh erzeugt Fehler 438 in Excel 2010 - Similar Threads - Application ScreenRefresh erzeugt

Forum Datum

Rechtsklick auf den Desktop erzeugt Fehler

Rechtsklick auf den Desktop erzeugt Fehler: Hallo,wenn ich mit der Maus Rechtsklick auf den Desktop klicke entsteht eine Fehler und das Menü öffnet sich nicht.Name der fehlerhaften Anwendung: explorer.exe, Version: 10.0.19041.4046,...
Games und Spiele 13. Februar 2024

Laufzeitfehler 438

Laufzeitfehler 438: Hi,Ich habe ein Problem mit Office 2019, speziell mit Outlook. Ich habe einen vba-code geschrieben in Excel, der die Empfänger von outlook-Emails ausliest obj.to. Ich bekomme bei manchen Emails...
Outlook.com 2. Januar 2022

Laufzeitfehler 438

Laufzeitfehler 438: Hi,Ich habe ein Problem mit Office 2019, speziell mit Outlook. Ich habe einen vba-code geschrieben in Excel, der die Empfänger von outlook-Emails ausliest obj.to. Ich bekomme bei manchen Emails...
Microsoft Office 2. Januar 2022

Fehler bei EXCEL 2010

Fehler bei EXCEL 2010: Bitte helfen Sie mir bei der Lösung eines fatalen Problems. Seit einigen Tagen erhalte ich bei der Anwendung simpler Additions-Funktionen falsche Ergebnisse. Wenn ich z. Bsp. einen Wert ändere,...
Microsoft Office 9. Januar 2020

Subtraktion in Excel 2010 erzeugt falsches Ergebnis

Subtraktion in Excel 2010 erzeugt falsches Ergebnis: Hallo, wenn ich in Excel 2010 (Version 14.0.7208.5000 32-Bit) folgende Formel eingebe =6361,6-6452,05 kommt nicht -90,45, sondern -90,4499999999998 raus. Wie kann das sein?
Microsoft Office 1. Oktober 2018

Laufzeitfehler 438

Laufzeitfehler 438: Hallo zusammen Ich habe eine Arbeitsmappe mit mehreren Arbeitsblättern. Die einzelnen Blätter sind Geschützt. Um die Gruppierungen anzuzeigen, habe ich folgenden Makro verwendet: Sub...
Microsoft Office 12. November 2017

Outlook 2010 Nachricht senden erzeugt Fehler-(Nachricht)

Outlook 2010 Nachricht senden erzeugt Fehler-(Nachricht): Wie behebe ich in Outlook 2010 beim Nachricht senden den erzeugten Fehler? ich verwende 3 Mailboxen (mit den Unter'files' Posteingang - Sent - Gelöscht - Archiv -) mit IMAP usw. in Outlook 2010...
Microsoft Office 18. September 2017
Application.ScreenRefresh erzeugt Fehler 438 in Excel 2010 solved
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.