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 :

syntaxe datediff VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 17
    Par défaut syntaxe datediff VBA
    Bonsoir,
    je récupère un tableau que je dois mettre en forme toutes les semaines ... classique ...
    mais j'ai une colonne avec des dates de naissance et je veux mettre dans la colonne d'à côté l'âge correspondant (en nb d'années par rapport à la date d'aujourdh'ui) (par exemple 15/01/1980 en A2 doit donner 28 sur la cellule C2 et ainsi de suite sur plus de 5.000 lignes)
    j'ai essayé datediff (avec 2 "f") dans tous les sens mais la synthaxe exacte m'échappe ...

    du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =DateDiff(Range("a2"), "now()", "yyyy")
    la fonction datedif dans excel fonctionne très bien mais je ne trouve pas sa correspondance en vba.

    Une petite idée ??
    Merci

  2. #2
    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
    Bonjour,

    Si tu te contentes de la différence en années (l'âge est autre chose de plus complexe) :

    En VBA, ce devrait être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     DateDiff("y", Now, Range("a2").value)

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 36
    Par défaut
    en vba ca donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub MacroX()
     
     
        Range("B1").Select
        ActiveCell.FormulaR1C1 = "=YEARFRAC(RC[-1],TODAY(),1)"
     
     
    End Sub

  4. #4
    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
    Je voudrais appeler ton attention sur certains points (je t(ai parlé de l'âge plus haut...)

    Lance ceci et du comprendras de quoi je parlais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Command1_Click()
     ladate = "14/12/2007"
     MsgBox DateDiff("yyyy", ladate, Now)
     MsgBox DateDiff("m", ladate, Now) / 12
     MsgBox DateDiff("d", ladate, Now) / 365
    End Sub
    Les 2 derniers résultats sont moins mauvais (mais pas parfaitement exacts) que le 1er ... (because certaines choses, dont les mois et les années bissectiles...

  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
    Que veux-tu ? Calculer l'âge par macro et le placer dans une cellule ou placer par macro la formule qui calcule l'âge dans les cellules ?

  6. #6
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 36

  7. #7
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Citation Envoyé par akira66fr Voir le message
    la fonction datedif dans excel fonctionne très bien mais je ne trouve pas sa correspondance en vba.
    Je me suis basé sur la demande du posteur...
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

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

Discussions similaires

  1. syntaxe update vba
    Par seyflo dans le forum VBA Access
    Réponses: 3
    Dernier message: 21/01/2011, 14h28
  2. Syntaxe DLookup vba sur Access
    Par seyflo dans le forum VBA Access
    Réponses: 24
    Dernier message: 01/06/2010, 11h49
  3. Syntaxe variable VBA
    Par neoboy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/04/2010, 22h28
  4. [AC-2007] Problème syntaxe en VBA pour champ oui/non
    Par franckimmo dans le forum VBA Access
    Réponses: 5
    Dernier message: 08/08/2009, 11h27
  5. probleme de syntaxe en vba
    Par Invité dans le forum VBA Access
    Réponses: 2
    Dernier message: 23/06/2007, 16h37

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