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 :

Macro qui verifie le contenu date


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 110
    Par défaut Macro qui verifie le contenu date
    Bonjour,

    ce code ci dessous permet de contrôler si la cellule est bien au format date "m/d/yyy", mais je remarque qu'il ne contrôle pas le contenu de la cellule date.
    Exemple le fait d'écrire 1204/2009 au lieu 12/04/2009, c'est pareil pour lui, alors que ça devrait être faux.

    Comment faire pour qu'il vérifie que le contenu est une vrai date ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If x.NumberFormat <> "m/d/yyyy" Then Sheets(CONTROLE).Cells(8, 256).End(xlToLeft).Offset(0, 1) = x.Address(REF_ABS, REF_ABS)
    Merci d'avance
    Codialement

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonsoir,
    Essayes avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If IsDate(Range("a1")) = False 'bien sur remplace range("a1")
    a +
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 110
    Par défaut
    Bonjour


    J'ai tester cela avec une fausse DATA 1212/2009 et 12/12/2009, pour lui c pareil

    merci de votra aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If x<> isdate  Then Sheets(CONTROLE).Cells(8, 256).End(xlToLeft).Offset(0, 1) = x.Address(REF_ABS, REF_ABS)
    merci

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Par défaut
    bonjour,

    La fonction IsDate() nécessite un argument !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If IsDate(ValeurCellule)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 110
    Par défaut
    bonjour,

    J'ai fait cela et toujours pareil

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        If x <> IsDate("m/d/yyyy") Then Sheets(CONTROLE).Cells(8, 256).End(xlToLeft).Offset(0, 1) = x.Address(REF_ABS, REF_ABS) 'Format date
    merci

  6. #6
    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
    Oh...
    Isdate renvoie True ou False
    Ouvre donc ton aide en ligne sur ce mot !
    et, donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If x <> IsDate("m/d/yyyy")
    n'aurait de sens que si x lui-même était un booléen (au demeurant bien inutile ...) !!!!
    Re : il est temps d'ouvrir ton aide en ligne sur Isdate, de lire et de lire également les exemples d'application qui viennent avec cette rubrique d'aide !

  7. #7
    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 roidurif Voir le message
    Bonjour,

    ce code ci dessous permet de contrôler si la cellule est bien au format date "m/d/yyy" (je suppose, compte tenu du reste, que tu as oublié un y ici), mais je remarque qu'il ne contrôle pas le contenu de la cellule date.
    Exemple le fait d'écrire 1204/2009 au lieu 12/04/2009, c'est pareil pour lui, alors que ça devrait être faux.

    Comment faire pour qu'il vérifie que le contenu est une vrai date ??
    Tu as mal lu l'utilisation de l'opérateur Like !!!

    Voilà donc ta fonction de vérification :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Function verifie(chaine As String) As Boolean
      If chaine Like "!*#/*#/####" Or Len(chaine) > 10 Or Len(chaine) < 8 Then Exit Function
      If Val(chaine) > 12 Or Not IsDate(chaine) Then Exit Function
      verifie = True
    End Function
    Elle retourne True (si date valable) ou False (si date non valable) pour une date exprimée sous la forme que tu as indiquée (m/d/yyyy)

    Le paramètre chaine (ton x) à lui passer doit d'abord être transformé au besoin en string.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 110
    Par défaut
    Merci ucfoutu pour ton aide

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

Discussions similaires

  1. [XL-2007] Besoin d'une macro qui va rechercher la date de modification d'un fichier
    Par bigsexy dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/09/2014, 14h31
  2. [XL-2003] Macro qui teste le contenu d'un tableau
    Par vivi21 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/09/2011, 15h21
  3. Réponses: 9
    Dernier message: 04/11/2010, 13h28
  4. [XL-2007] macro qui identifie cellules avec aucune date
    Par gym2003 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/10/2010, 13h41
  5. Creer un macro qui verifie une info sur plusieur fichier excel
    Par Esmax666 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/07/2009, 16h42

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