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 :

[E-03] Se référer à la date système pour créer des conditions


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Décembre 2007
    Messages
    1 235
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 1 235
    Par défaut [E-03] Se référer à la date système pour créer des conditions
    Bonjour, je voudrais savoir comment écrire en vba pour réaliser la condition suivante:

    Si "La Date Sytème de l'ordinateur" est inférieur à une date déterminée, par exemple (31/01/09) alors....

    Je pense que c'est quelque chose du type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Now< 31/01/09 then...
    Mais sa ne doit pas exactement être sa parce que sa ne fonctionne pas!

    Merci pour l'aide

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,

    une discussion ici qui pourrait t'intéresser.

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Citation Envoyé par moilou2 Voir le message
    Je pense que c'est quelque chose du type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Now< 31/01/09 then...
    Mais sa ne doit pas exactement être sa parce que sa ne fonctionne pas!
    Bonjour,
    Si ta date système est à jour (nous sommes déjà le 3 février 2009 !) il ne risque pas de déclencher quoi que ce soit, ton Then ...


    Voilà de toutes façons la manière orthodoxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Dim ladate As Date
      ladate = "10/02/2009"
      If Now < ladate Then MsgBox "oui"

  4. #4
    Membre éprouvé
    Inscrit en
    Décembre 2007
    Messages
    1 235
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 1 235
    Par défaut
    Bon ba je n'y arrive pas, mon raisonnement ne doit pas être logique

    Si vous voulez j'ai 12 boutons dans un UserForm. Ces 12 boutons représente en fait les 12 mois de l'année.

    Ce que je veux faire c'est rendre le clic possible sur un bouton (propriété enable) uniquement si le mois de ce bouton est terminé. Suis-je clair?

    Je veux placer ce code sur l'évenement activate de mon UserForm.

    Ainsi comme nous sommes le 04 février 2009, seul le bouton du mois de janvier doit être dégrisé.

    Si on été le 5 mars, seuls les boutons Janvier et Février doivent être dégrisés.

    Je pense être clair.

    Merci

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    J'espère que tes boutons sont numérotés, ça facilitera l'écriture du code.
    Dans Userform_Activate ou Initialize, tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For i = 1 to 12
         if i < Month(Now) then 
               Me.controls("Bouton" & i).Visible = true
            else
               Me.controls("Bouton" & i).Visible = false
         endif
    Next
    Tu remplaces Bouton par le nom qui est le leur.
    Si tes boutons ne sont pas numérotés, crée un tableau de leurs noms que tu utilises dans la boucle à la place de "Bouton" & i.

  6. #6
    Membre éprouvé
    Inscrit en
    Décembre 2007
    Messages
    1 235
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 1 235
    Par défaut
    J'espère que tes boutons sont numérotés, ça facilitera l'écriture du code
    Tu veux dire numérotés de 1 à 12?

    Je peux le faire, mais actuellement le nom des boutons est Cmd_Janvier, Cmd_Février....

    Tu remplaces Bouton par le nom qui est le leur.
    J'ai 12 noms de boutons différents, je ne vois pas bien comment faire,^peut tu adapter ton code à un bout de mon application?

    Merci pour ton aide, sa a l'air plus simple que ce que j'essayé de faire (enfin moins long...)

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    On va essayer d'adapter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub UserForm_Initialize()
        For i = 1 To 12
            NomBouton = Format(CDate("1/" & i & "/" & Year(Now())), "mmmm")
             If i < Month(Now) Then
                   Me.Controls("cmd_" & NomBouton).Enabled = True
                Else
                   Me.Controls("cmd_" & NomBouton).Enabled = False
             End If
        Next
    End Sub
    Tu n'es pas obligé de mettre
    NomBouton = Format(CDate("1/" & i & "/" & Year(Now())), "mmmm")
    tu peux simplifier en mettant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            NomBouton = Format(CDate("1/" & i & "/1900"), "mmmm")
    Par contre, je n'ai pas traité le passage d'une année sur l'autre, par exemple le mois de janvier 2010. Mais maintenant que tu as le principe, tu sauras adapter
    Raconte-nous

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/03/2014, 18h03
  2. [Batch] Problème d'utilisation de la date système pour horodatage
    Par cycy75 dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 01/09/2011, 17h19
  3. [Dates] Boucle pour creer des dates
    Par Konrad Florczak dans le forum Langage
    Réponses: 19
    Dernier message: 27/10/2006, 19h03

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