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 :

If IsDate () [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2013
    Messages : 111
    Par défaut If IsDate ()
    Bonjour,

    Je peine à utiliser la fonction IsDate.

    Lorsque j'écris :

    If IsDate ("29/04/2018") -> je ressors un TRUE

    Par contre, si j'écris la date dans la cellule E17 par exemple et que j'écris mon code comme suit :

    If IsDate (Range("E17")) -> je ressors un FALSE

    j'ai testé de changer le format dans excel mais rien n'y fait.

    Pourriez-vous m'aider ?

    merci d'avance ;-)

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    bonjour
    ben oui c'est un peu normal baucoup meme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'ici tu teste le string du date (valide)
    if isdate ("29/04/2018") -> je ressors un TRUE
    Par contre, si j'écris la date dans la cellule e17 par exemple et que j'écris mon code comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'ici tu teste le string "e17"
     if isdate ("e17")' -> je ressors un FALSE
    si le string injecté n'est pas une date forcement tu aura un retour false

    maintenant si tu prends le string de la cellule "e17" ca va marcher beaucoup mieux bien evedement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if isdate ("29/04/2018")' -> je ressors un TRUE
    Par contre, si j'écris la date dans la cellule e17 par exemple et que j'écris mon code comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if isdate (range("e17").text)' -> te ressortira true si la date dans E17 est valide
    tu a compris la difference de variable string et object ?
    cela peut s'ecrire aussi comme ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if isdate ([E17].text)' -> je ressors un FALSE ou true si la date dans la cellule et valide ou non
    et je ne saurais que trop te conseiller de preciser le parent au cas ou la cellule visée ne serait pas dans le sheets actif
    exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if isdate (sheets("toto").[E17].text)' ->  je ressors un FALSE ou true si la date dans la cellule et valide ou non
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if isdate (sheets("toto").range("e17").text) '-> je ressors un FALSE ou true si la date dans la cellule et valide ou non
    ou si tu dois travailler sur sheets apres ca tu ne met que le "." pour preciser que c'est l'enfant du with
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     with sheets("toto")
    if isdate (.range("e17").text)' ->  je ressors un FALSE ou true si la date dans la cellule et valide ou non 
    end with
    voila
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2013
    Messages : 111
    Par défaut
    Effectivement, ca marche déjà beaucoup mieux comme ca :-)

    Un grand merci pour ton aide !

  4. #4
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    "E17" est une chaine de caractères, pas le contenu de la cellule E17...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IsDate(Range("E17").Value)

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

Discussions similaires

  1. [C#] Existe t-il un équivalent de IsDate() ?
    Par luimême dans le forum C#
    Réponses: 3
    Dernier message: 22/04/2010, 07h01
  2. Excel 2002 XP - Problème avec Isdate()
    Par Sergio63 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/08/2008, 18h14
  3. IsDate ou la conversion date anglais/français
    Par pifou25 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 05/04/2007, 19h24
  4. Réponses: 1
    Dernier message: 22/04/2006, 19h08
  5. [C#] ISDATE dans C#?
    Par Nadaa dans le forum ASP.NET
    Réponses: 14
    Dernier message: 31/08/2004, 16h15

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