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 :

Select case sur une date


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut Select case sur une date
    Bonjour, je suis bloqué pour un exercice .
    Je souhaiterais faire une comparaison de date
    pour le signe du zodiaque

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function ..... as string
     
     select case (madate ) en format date 
    case CDate(3/21/year(madate)) to CDate(4/20/year(madate))
    zodiaque = "bélier"
    .....
    .....
    endselect
    ce modele ne marche clairement pas il n'y a pas d'erreur mais ca marche pas

    Pour info , j ai créé une classe date moi meme et qui marche mais , je vois pas comment gerer le select case
    ou si vous avez une autre idée pour determiner selon la date le signe je suis preneur , car la je bugg sur ca j ai pas trop d'idees

    Je vous remercie par avance

  2. #2
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut select case sur une date
    Bonsoir,

    C'est quoi ma date ? La date du jour je suppose. Si oui il suffit de poser
    -soit year(date) en lieu et pace de year(madate)
    -doit ecrire avant select case madate = year(date) et mettre madate dans les case

    Autre approche peut-être avec la fonction "dateserial" pour éviter les confusions entre anglais et français sur certaines dates
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    case Dateseria(madate,3,20) to Dateserial(madate,4,20)
    cordialement,

  3. #3
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut
    Merci mais j'ai pas bien compris :

    En faite , ma date est une date de naissance que l'on rentre .
    On veut savoir suivant la date de naissance le signe astrologique .
    je veux donc tester avec une fonction , et donc l'utilisation d'un select case
    le probleme c'est que quand j'appel la fonction dans ma userforme elle n'affiche rien , donc ya un bug , tout les autres fonctions s'affichent dans la userform mais pas celle la je me doute qu'il y a un probleme dans ma fonction

    je ne vois pas trop comment comparer ma date de naissance avec les differents intervalles de dates du signe du zodiaque

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function zodiac as string
     
    select case (madate ) en format date
    case CDate(3/21/year(madate)) to CDate(4/20/year(madate))
    zodiaque = "bélier"
    .....
    .....
    endselect
    desolé d'avance pour la non utilisation de l'option code , car je travail sur windows et je n'ai internet que sur le mac .
    Mais je pense que ce n'est pas un gros gros probleme , et que ma structure a une faute , juste , mais je ne vois pas ou :/

    encore merci

    cordielement

  4. #4
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    que tu sois né en 1998 en 1930 ou en l'an 1 l'année ne joue en rien pour le signe il suffit de tester le jour et le mois. Dateserial comme dit nible fera l'affaire

  5. #5
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut
    désolé mais je ne comprend pas :/ j'ai beau chercher je ne comprend pas le code .

    Je suis daccord sur la date , l année ne change rien mais j'aurais voulu tester que sur le jour et le mois mais je ne sais pas comment faire
    si c'est dateserial , ce n'est pas reelement son but si??

    merci beaucoup

  6. #6
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut
    j'ai réussi , je peux mettre le code si ca interesse quelqu'un
    si par asard on pouvait m'expliquer l'utilite de dateserial car je la voie pas trop :/ mais c'est bon ca marche je vous remercie pour les pistes en tout cas
    j'attend votre réponse et je met sur résolu :p

  7. #7
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut select case sur une date
    bonjour,

    voila ma proposition pour comparaison

    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
     
    ' code 1
    sub zodiac()
    madate = InputBox("jour et mois (4 chiffres sans espaces) ?")
    madate = CDate(Left(madate, 2) & "/" & Mid(madate, 3, 2) & "/2013")
    MsgBox madate  'pour vérification
    Select Case madate
      Case DateValue("21 / 3 / 2013") To DateValue("20 / 4 / 2013")
      zodiac = "bélier"
      Case DateValue("21 / 4 / 2013") To DateValue("20 / 5 / 2013")
      zodiac = "truc"
      Case DateValue("21 / 5 / 2013") To DateValue("20 / 6 / 2013")
      zodiac = "much"
      Case DateValue("21 / 6 / 2013") To DateValue("20 / 7 / 2013")
      zodiac = "moche"
     
    End Select
    MsgBox zodiac
    End Sub
     
    ' code 2
    Sub zodiac1()
    jour = InputBox("jour naissance ? (2 chiffres)")
    mois = InputBox("mois naissance ? (2 chiffres)")
    madate = CDate(jour & " /" & mois & " /" & "2013")
    MsgBox madate  'pour vérification
    Select Case madate
      Case CDate("21 / 3 / 2013") To CDate("20 / 4 / 2013")
      zodiac = "bélier"
      Case CDate("21 / 4 / 2013") To CDate("20 / 5 / 2013")
      zodiac = "truc"
      Case CDate("21 / 5 / 2013") To CDate("20 / 6 / 2013")
      zodiac = "much"
      Case CDate("21 / 6 / 2013") To CDate("20 / 7 / 2013")
      zodiac = "moche"
     
    End Select
    MsgBox zodiac
     
    End Sub :
    D'autres possiblités.
    préférer un userform

    Cordialement,

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

Discussions similaires

  1. Select case sur une partie d'une chaine de caractere
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/01/2012, 15h16
  2. select sur une date
    Par breizh76 dans le forum SQL
    Réponses: 23
    Dernier message: 01/02/2010, 18h15
  3. Problème de lenteur due à une selection sur une date [CR 8.5]
    Par Fredifredo dans le forum SAP Crystal Reports
    Réponses: 15
    Dernier message: 13/02/2007, 17h10
  4. select sur une date de plus de x jour
    Par Zen_Fou dans le forum Requêtes
    Réponses: 4
    Dernier message: 03/04/2006, 17h14
  5. Problème de select sur une date (DATETIME....)
    Par zeldoi5 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 16/05/2005, 11h19

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