Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1760to1764
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makrobearbeitung für einige Sekunden anh

Makrobearbeitung für einige Sekunden anh
06.06.2020 00:16:29
reiner
Hallo Leute,
in nachfolgendem Beispielcode wird nach einer Ja –Antwort die Zeile 5 eingeblendet und die bisher verdeckten Zellen angezeigt.
Nach einer Wartezeit von ca. 5 Sekunden soll die Zeile 5 wieder ausgeblendet werden.
Ich suche eine Möglichkeit, die Zeile 5 einzublenden und nach Ablauf der Wartezeit soll die Makrobearbeitung fortgesetzt und die Zeile 5 wieder ausgeblendet werden.
Private Sub chkDoppeltLösung_Click()
If chkDoppeltLösung.Value = True Then
Abfrage = MsgBox("wenn Lösung eingeblendet werden soll, " _
& vbCr _
& vbCr _
& "werden 3 Strafpunkte abgezogen; " _
& vbCr _
& vbCr _
& "Lösung trotzdem einblenden?  ", _
vbYesNo + vbInformation, "L Ö S U N G einblenden?")
If Abfrage = 6 Then
Rows("5:5").Select
Selection.EntireRow.Hidden = False
End If
If Abfrage = 7 Then
chkDoppeltLösung.Value = False
chkDoppeltLösung.Enabled = False
End If
End If
Warten
Warten
Warten
Warten
Warten
Rows("5:5").Select
Selection.EntireRow.Hidden = True
End Sub

Mit „Application.OnTime Now + TimeSerial(0, 0, 5)“ wird zwar die Bearbeitung für 5 sek. angehalten, aber die Zeile 5 wird weder ein- noch ausgeblendet.
Kennt jemand eine andere Möglichkeit?
mfg
reiner

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
probier mal Application.Wait ...
06.06.2020 06:13:43
Matthias
Hallo
Also ich habs jetzt mal nur als Bsp. so getestet:
Option Explicit
Sub Zeile_5_zeigen()
If MsgBox("Wollen sie die Löungen sehen? Das kostet 3 Punkte Abzug", vbYesNo) = vbYes Then
Rows("5:5").EntireRow.Hidden = False
Application.Wait Now + TimeSerial(0, 0, 5)
Rows("5:5").EntireRow.Hidden = True
End If
End Sub
Code mal zum Testen einer Befehlsschaltfläche(Formularsteuerelemente) zuweisen.
Bei mir funktioniert das ohne Probleme.
Zeile(5) natürlich vorher ausblenden.
Gruß Matthias
AW: probier mal Application.Wait ...
06.06.2020 11:53:31
reiner
Hallo Matthias,
danke für deinen Vorschlag der auch bei mir in einer neuen Datei funktioniert.
Wenn ich jedoch die "Sub Zeile_5_zeigen()" in mein bestehndes Makro einpflege funktioniert es leider nicht, weil die Zeile 5 weiterhin nicht eingeblendet wird.
Ich habe die "Sub" mit F8 in einzelnen Schritten abgearbeitet, die Frage in der msgbox mit "Ja" beantwortet und im nächsten Schritt mit F8 die Codezeile "Rows("5:5").EntireRow.Hidden = False" abgearbeitet.
Daraufhin wurde Zeile 5 eingeblendet
den weiteren Code mit F5 abgearbeitet, die Zeile 5 wurde ausgeblendet. (so soll es sein)
Die Frage ist: warum wird Zeile 5 nicht eingeblendet und stattdessen gleich die Zeitverzögerung aktiviert?
reiner
Anzeige
(D)eine Bsp.Mappe wäre von Vorteil ...
06.06.2020 12:20:45
Vorteil
Hallo,
um das herauszufinden müsste man eine Kopie Deiner Datei ansehen und Testen.
Also lad (D)eine Bsp.Mappe bitte hier hoch.
Enferne aber vorher alles private und alles was nichts mit dem Problem zu tun hat.
Gruß Matthias
hier die Datei
06.06.2020 13:10:58
reiner
Hallo Matthias,
https://www.herber.de/bbs/user/138075.xlsm
Es handelt sich hierbei um eine selbstgebastelte funktionsfähige Version des Brettspiels "Superhirn"
Wie schon beschrieben besteht das Problem darin, die Lösung der zu erratenden 5 Farben in der verdeckten Zeile "5" einzublenden bei gleichzeitiger Bewertung mit 3 Strafpunkten.
Spielbeginn; alle 3 Befehlselemente nacheinander betätigen:
1. cmdStart "Neues Spiel"
2. chkDoppelt "Farbe dopplet vorh."
3. chkDoppeltLösung "Lösung Farbe doppelt vorh." - hier soll Zeile "5" ein- und 5 Sek. später wieder ausgeblendet werden - und da liegt mein ungelöstes Problem
reiner
Anzeige
AW: (D)eine Bsp.Mappe wäre von Vorteil ...
06.06.2020 13:30:30
Vorteil
hallo Matthias,
bitte spar dir die Arbeit, der Beitrag von Daniel enthält die Lösung
danke für deine Unterstützung
AW: probier mal Application.Wait ...
06.06.2020 13:12:19
Daniel
Hi
Manche Befehle, die VBA an Excel weitergibt, werden zeitverzögert ausgeführt.
Probier mal den Befehl: Application.ScreenUpdating = True zwischen Einblenden und Pause.
Gruß Daniel
AW: probier mal Application.Wait ...
06.06.2020 13:29:04
reiner
hallo Daniel,
das ist es!!!
danke
da hast Du Dir aber selbst ein Bein gestellt ...
06.06.2020 13:36:32
Matthias
... denn in Deiner Ausgangsfrage stand nichts davon im Code.
In Deiner Datei jetzt aber doch.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige