IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Prévenir 3 jours avant [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut Prévenir 3 jours avant
    Bonjour a toutes et tous, forum bonjour

    J'ai dans mon userform, un Label(8) ou il est écrit une date d'expiration.

    Exemple "07/Janv/2014" c'est la format dans le Label(8)

    Je souhaiterai svp qu'a l'ouverture de mon programme, un petit code pour que la date clignote dans ce Label(8), 3 jours avant la date inscrite dans ce Label.

    et que le clignotement s'arrète automatiquement au bout de 15 secondes

    PS: juste faire clignoter la date PAS le Label

    j'ai fouiner sur le site et essayer de trouver sur le net mais je n'ai pas trouver ce dont j'aurai besoin.

    Merci par avance pour votre aide
    Bonne journée a tous, bon W-end et merci

    Cdlt Ray

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Teste ce qui suit. A mettre dans le module de ta Form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    Private Declare Function GetTickCount Lib "Kernel32" () As Long
     
    Sub Minuterie(Milliseconde As Long)
     
        Dim Arret As Long
     
        Arret = GetTickCount() + Milliseconde
     
        Do While GetTickCount() < Arret
     
            DoEvents
     
        Loop
     
    End Sub
     
    Private Sub UserForm_Activate()
     
        Dim Fin As Date
     
        If CDate(Label8.Caption) - Date <= 3 Then
     
            Fin = Time + 0.625 / 3600
     
            Do While Time < Fin
     
                Label8.ForeColor = &H80000012
     
                'toutes les demi seconde
                Minuterie 500
     
                'rouge
                Label8.ForeColor = &HFF&
     
                Minuterie 500
     
            Loop
     
            'remets à noir
            Label8.ForeColor = &H80000012
     
        End If
     
    End Sub
    Hervé.

  3. #3
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut
    Salut Theze,

    Merci beaucoup pour ta réponse et pour le code, c'est sympa.

    Pour me faciliter les choses, j'ai voulu insérer le code ci-dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Label8.Caption = Date(07/Janv/2014)
    dans

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub UserForm_Initialize()
    afin de pouvoir modifier a ma guise une date voulue et ca coince.

    voila ca ne marche pas pour l'instant

    Merci pour ton aide et bonne après midi

    Cdlt Ray

    Salut Theze

    Alors c'est presque bon, j'ai trouvé pour les deux posts précédents.

    Je souhaiterai svp savoir quelle est la formule qui permets de calculer le temps

    de clignotement avant l'arret.

    comme tu a fait ci-dessous pour obtenir 15 secondes

    J'ai chercher si (TIME) avait une valeur fixe mais je n'ai pas trouver

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Fin = Time + 0.625 / 3600
    Merci de ton aide, je te souhaite la bonne soirée

    Cordialement Ray

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Il faut d'abord savoir comment Excel interprète les dates et heures. Pour Excel, le jour a valeur 1, l'unité donc et pour avoir les heures, minutes et secondes, il suffit de diviser 1 par 24 pour les heures puis par 60 pour les minutes et enfin encore par 60 pour les secondes et comme tu souhaite 15 secondes, la formule est : 1 / 24 / 3600 x 15 que j'ai réduite à 0,625 / 3600 où 0,625 = 1 / 24 x 15.
    Les dates, comme elles sont affichées dans les cellules sont formatées mais derrière, Excel utilise des Longs pour faire les calculs et donc, la date d'aujourd'hui (13/10/2013) donne 41560. Tu peux tester :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub Test()
     
        MsgBox CLng(DateValue("13/10/2013"))
     
    End Sub
    Et pour les heures, minutes et secondes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub Test()
     
        MsgBox CDbl(TimeValue("00:00:15"))
     
    End Sub
    Hervé.

    Re,

    Pour définir la date de ton label, il te suffit juste de d'écrire de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Label8.Caption = "07/Janv/2014"
    car la propriété "Caption" attend un String.

    Quant à la fonction Time, elle retourne l'heure système.

    Hervé.

  5. #5
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut
    Bonjour a tous et toutes, Forum bonjour

    Salut Hervé

    Merci beaucoup pour ton aide et toutes ces précieuses infos, c'est sympa a toi et en plus bien expliquer.

    J'ai adapter le code a mon programme et voila clic clac kodac , ca marche

    je peux modifier couleur du texte, temps clignotement, modifier date a surveiller

    que du bonheur

    Me reste a te souhaiter un bon Dimanche avec tous mes sincères remerciements, c'est parfait.

    Je clos le sujet et merci

    Bien cordialement Raymond et

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/01/2009, 11h06
  2. [Dates] nombre de jours avant Noël
    Par hubald dans le forum Langage
    Réponses: 1
    Dernier message: 19/11/2008, 16h32
  3. [MySQL] envoi d'un mail 2 jours avant un jour "J"!
    Par chouchouboy dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 23/06/2006, 11h16
  4. [Date] Obtenir automatiquement jour avant et après
    Par Didier69 dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 18/01/2006, 09h42
  5. [Date] Récuperer la date de 7 jours avant
    Par smy85 dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 11/05/2004, 12h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo