Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
456to460
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
456to460
456to460
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Kursorblinken

Kursorblinken
16.07.2004 06:58:03
Konni
Hallo Freaks,
kann man das Verwandeln (Sekundenbruchteil) des Excelkursors in Sanduhr bei laufendem Countdown (Uhr) verhindern (unterdrücken)?
Vielen Dank für Eure Rückmeldungen: Konni

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

Betreff
Datum
Anwender
Anzeige
AW: Kursorblinken
Andreas
Ohne Code für Dein Countdown zu kennen, schwer zu sagen.
Application.Screenupdating=False
am Anfang Deines Makros und wieder True am Ende vielleicht?
AW: Kursorblinken
16.07.2004 10:45:21
Konni
Danke Andreas, dass Du Dich meldest,
nachstehend der Code im Modul
Option Explicit
Public ET As Variant
Public DaZeit As Date
Sub Zeitmakro()
ThisWorkbook.Worksheets("Submissionen 1-50").Range("A11") = ThisWorkbook.Worksheets("Submissionen 1-50").Range("A11") - CDate("00:00:01")
If ThisWorkbook.Worksheets("Submissionen 1-50").Range("A11") 0 Then
ET = Now + TimeValue("00:00:01")
Application.OnTime ET, "Zeitmakro"
Else
ThisWorkbook.Close True 'speichern
' Meldung bei Excel immer in Vordergrund
' Dim mldg
' mldg = MsgBox("Endzeit erreicht", 1048576, "Endzeit")
' 1048576 entspricht vbMsgBoxRtlReading
End If
End Sub
Sub MacrosON()
'Dieses Macro ausführen wenn der Code zwischen
'Application.EnableEvents = False und
'Application.EnableEvents = True
'angehalten wurde oder abstürzt
Application.EnableEvents = True
End Sub
nachstehend der Code der Arbeitsmappe
Option Explicit

Private Sub Workbook_Open()
DaZeit = "0:02:00"
ThisWorkbook.Worksheets("Submissionen 1-50").Range("A11") = CDate(DaZeit)
Zeitmakro
End Sub


Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.OnTime EarliestTime:=ET, Procedure:="Zeitmakro", Schedule:=False
End Sub


Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
ThisWorkbook.Worksheets("Submissionen 1-50").Range("A11") = DaZeit
End Sub

Anmerken muss ich noch dazu, dass ich von VBA wirklich keinerlei Ahnung habe und vorstehende Codes freundlicherweise von Heinz Ulm gepostet bekommen habe.
Zur Erklärung meiner Tabelle:
Eshandelt sich dabei um eine Submissionsübersicht in der das Datum (=heute()) und die aktuelle Uhrzeit (=jetzt() gezeigt werden. Der Impuls für die aktuelle Uhrzeit =jetzt() wird durch das Programm von Heinz erzeugt, welches einen Countdown ausführt mit einer Variablen, wonach dann die Tabelle abgespeichert und geschlossen wird.
Nun stören sich viele Kollegen an dem blinkenden Kursor. Vielleicht kannst Du mir weiterhelfen.
Eine Bitte noch: Es gab Anregungen, dass bei Erreichen einer verbleibenden Schließzeit von 30 s ein Laut ertönt (z.B. Windows\media\ringin.wav). Es sollte so sein, dass bei Erreichen eines bestimmten Zellenwertes das Signal ertönt.
Ich habe schon Vieles aus der Recherche probiert, nichts klappt; auch nicht mit einer leeren Versuchstabelle. - Vielleicht kannst Du mir die Lösung mit in "meinen Code" einbauen?!
Herzlichen Dank: Konni
Anzeige
@Heinz Ulm
Andreas
Makro stammt urspünglich von Dir.
Kannst Du helfen?
Ich steige nicht durch
AW: Kursorblinken
16.07.2004 11:48:03
ANdreas
Hallo Konni,
das Cursorblinken lässt sich meiner Meinung nach nur abmildern, indem Du das Intervall fürs Herunterzählen etwas anhebst. Also nicht jede Sekunde sondern z.B. nur alle 5 Sekunden den Timer aktualisierst.
Eine Wav-Datei abzuspielen ist kein Problem. Ändere im Modul einfach das Zeitmakro und füge davor noch die API fürs Abspielen der Sounds ein:
(Edit: in der Vorschau verrutscht Private Declare immer, das kommt direkt vor Function!!!)
Private Declare

Function sndPlaySound32 Lib "winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName _
As String, ByVal uFlags As Long) As Long

Sub Zeitmakro()
With ThisWorkbook.Worksheets("Submissionen 1-50").Range("A11")
.Value = .Value - CDate("00:00:01")
If .Value <> 0 Then
ET = Now + TimeValue("00:00:01")
If .Value = TimeValue("00:01:40") Then
'Hier den Pfad angeben
'Im Beispiel liegt die wav Datei im gleichen Verzeichnis wie
'die Exceldatei
Call sndPlaySound32(ThisWorkbook.Path & "\bla.wav", 1)
End If
Application.OnTime ET, "Zeitmakro"
Else
ThisWorkbook.Close True 'speichern
' Meldung bei Excel immer in Vordergrund
' Dim mldg
' mldg = MsgBox("Endzeit erreicht", 1048576, "Endzeit")
' 1048576 entspricht vbMsgBoxRtlReading
End If
End With
End Sub

Hoffe das hilft weiter,
Andreas
Nibbles für Excel
Anzeige
AW: Kursorblinken
16.07.2004 13:01:54
Konni
Hallo Andreas,
vielen Dank, ich habe den Code nach Deinen Angaben umgestrickt. Bei Testen kommt aber die Meldung: Fehler beim Kompilieren - Unzulässiger oder unzureichender Verweis.
Bei "If .Value" wird "Value" blau hinterlegt. (Ich habe Deinen Code reinkopiert, somit kein Eingabefehler meinerseits, oder?)
Noch etwas; unsere Bürorechner haben Win2k prof als Betriebssystem und die WAV-Dateien sind auf C: unter WINNT\media\xyz.wav abgelegt. - Wie lautet die genaue Pfadbezeichnung in Deiner Lösung?
Vielen Dank sagt: Konni
AW: Kursorblinken
16.07.2004 13:29:51
ANdreas
Hallo Konni,
so hier nochmal der Code. Deinen Fehler kann ich nicht nachvollziehen, da Du ja den Code kopiert hast. Der Punkt vor Value ist da und auch der With-Block korrekt, damit wird ja festgelegt worauf sich .Value bezieht.
Versuch jetzt einfach nochmal dieses Makro. Habe dort einfach mal das Intervall auf 5 Sekunden geändert und den Pfad zu Deiner Wav-Datei eingegeben.
Das Private Declare kommt wie gesagt vor die Funktion sndPlaySound32 in die gleiche Zeile - verrutscht hier beim Posten immer...
Public ET As Variant
Public DaZeit As Date
Private Declare

Function sndPlaySound32 Lib "winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName _
As String, ByVal uFlags As Long) As Long

Sub Zeitmakro()
With ThisWorkbook.Worksheets("Submissionen 1-50").Range("A11")
.Value = .Value - CDate("00:00:05")
If .Value <> 0 Then
ET = Now + TimeValue("00:00:05")
If .Value = TimeValue("00:00:30") Then _
Call sndPlaySound32("C:\WINNT\media\xyz.wav", 1)
Application.OnTime ET, "Zeitmakro"
Else
ThisWorkbook.Close True 'speichern
End If
End With
End Sub

Gruß
Andreas
Anzeige
AW: Kursorblinken
16.07.2004 22:01:16
Konni
Hallo Andreas,
vielen Dank, dass Du mir hilfst. - Bei Deiner letzten Variante kam die gleiche Fehlermeldung. Da fehlt glaube ich ein "End If", weiß nicht genau.
Ich sende Dir nun den Code, basierend auf Deinen Anregungen, bei dem es zwar keine Fehlermeldung gibt, aber die Uhr nicht läuft. - Woran kann dies nun wieder liegen.
Zuhause benutze in WinXP prof auf D.\ und Win98 SE auf C:\ (wegen Toolbox Drucker).
Schau Dir den Code mal an:
Option Explicit
Public ET As Variant
Public DaZeit As Date
Private Declare

Function sndPlaySound32 Lib "winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName _
As String, ByVal uFlags As Long) As Long

Sub Zeitmakro()
With ThisWorkbook.Worksheets("Submissionen 1-50").Range("A11")
.Value = .Value - CDate("00:00:05")
If .Value <> 0 Then
ET = Now + TimeValue("00:00:05")
If .Value = TimeValue("00:00:40") Then
Call sndPlaySound32("D:\Windows\media\ringin.wav", 1)
Application.OnTime ET, "Zeitmakro"
End If
Else
ThisWorkbook.Close True 'speichern
' Meldung bei Excel immer in Vordergrund
' Dim mldg
' mldg = MsgBox("Endzeit erreicht", 1048576, "Endzeit")
' 1048576 entspricht vbMsgBoxRtlReading
End If
End With
End Sub


Sub MacrosON()
'Dieses Macro ausführen wenn der Code zwischen
'Application.EnableEvents = False und
'Application.EnableEvents = True
'angehalten wurde oder abstürzt
Application.EnableEvents = True
End Sub

Danke für die Ausdauer. Ich bin 55 J. und mit meinen Nerven steht es in diesem Fall nicht zum Besten. - Die Jugend in unserem Büro hat mit EDV nichts am Hut, reine Anwender, nach dem Motto: Konni macht das schon. - VBA werde ich mir vermutlich nicht mehr aneignen, daher bin ich froh, dass es so nette Leute wie Euch gibt, die den Unterbelichteten unter die Arme greifen.
Nochmals Danke und bin gespannt, wo dieser kleine Fehler diesmal liegt: Konni
Anzeige
AW: Kursorblinken
Konni
Hallo Andreas,
ich habe den Fehler gefunden. Uhr läuft und klingeln tuts auch. Funktioniert aber nur, wenn ich den Wert "00:00:30" eingebe. Bei "00:00:10" oder anderen Zeitvorgaben funktioniert der Wecker nicht. - Warum?
Vielen Dank für Deine Hilfe: Konni

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige