Modal ? et pb horloge ?

Chris57

XLDnaute Occasionnel
Bonjour à tous,

J'aimerai savoir ce que signifie modal dans le cadre des userforms, à quoi sert cette option et comment l'activer ou non.

Autre question, j'ai installé une horloge sur une userform. J'aimerai récupérer cette valeur incrémentée toutes les secondes pour réaliser un espèce de 'réveil' avec alarmes à différentes heures de la journée.
(pour mon boulot)

Les heures d'alarmes seront elles inscrites sur une feuille du même classeur.
Seulement je n'arrive pas à lancer un 'test' à chaque seconde qui défile pour voir si elle correspond ou pas à une heure d'alarme

Voici le code de l'horloge : (récupéré sur ce forum)

Code:
Option Explicit

Public Declare Function SetTimer _
    Lib 'user32' ( _
    ByVal hwnd As Long, _
    ByVal nIDEvent As Long, _
    ByVal uElapse As Long, _
    ByVal lpTimerfunc As Long) _
As Long

Public Declare Function KillTimer _
    Lib 'user32' ( _
    ByVal hwnd As Long, _
    ByVal nIDEvent As Long) _
As Long

'========== Déclarations Public ========================
Public TimerID As Long            'Activer avec cet ID
Public TimerActive As Boolean     'Est le minuteur actif
'=======================================================

Public Sub ActiverTimer(ByVal sec As Long)
        sec = sec * 1000
        If TimerActive Then Call DesactiverTimer
        On Error Resume Next
        TimerID = SetTimer(0, 0, sec, AddressOf Timer_CallBackFunction)
        TimerActive = True
End Sub


Public Sub DesactiverTimer()
        KillTimer 0, TimerID
End Sub


Public Sub Timer_CallBackFunction(ByVal hwnd As Long, ByVal uMsg As Long, ByVal idevent As Long, _
    ByVal Systime As Long)
        PROG.CommandButton3.Caption = Format(Now, 'Long Time')
        PROG.DATEnow.Caption = 'Nous somme le : ' & Format(Date, 'Long Date')
End Sub

PROG étant l'userform où se situe l'horloge
 

Luki

XLDnaute Accro
bonjour Chris57,

Je peux répondre à la première question.

Un Uf est modal lorsque tu dois lui répondre avant de passer à autre chose. Il 'garde la main' tant que tu ne l'as pas fermé.
A l'inverse, il est non modal si tu peux reprendre la main dans ta feuille sans le fermer.


Par défaut il est modal. par ex : Uf1.show
pour préciser si modal ou pas:
Uf1.show(1) = modal
Uf1.show(0) = non modal

l'utilisation de non modal intervient si tu doit saisir qqchose dans la feuille avant de valider ton Uf, ou si tu dois en ouvrir un autre en cascade par ex.

Bonne journée

EDITION !!!
Une précision extraite de l'aide VBA:

Note Dans Microsoft Office 97, si un objet UserForm est défini de telle sorte qu'il s'affiche sans intervention de l'utilisateur (objet non modal), une erreur se produit au moment de l'exécution. Les objets UserForms d'Office 97 sont toujours de forme modale.

Message édité par: Luki, à: 26/10/2005 08:01
 

Discussions similaires

Statistiques des forums

Discussions
313 344
Messages
2 097 337
Membres
106 916
dernier inscrit
Soltani mohamed