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 :

Code de la fonction Datedif [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 73
    Par défaut Code de la fonction Datedif
    Bonjour à tous !

    Je veux créer une macro permettant de faire des différences de dates.
    Je sais que manuellement pour effectuer une différence de date en mois par exemple, on utilise la fonction DateDiF.
    Malheureusement je connais pas le code de cette fonction.

    Ainsi je veux un code permet d'effectuer une différence de date en mois svp ..

    Voila mon code pour l'instant (qui ne fonctionne pas):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim a&, plage, j&
    a = [A65536].End(xlUp).Row
    plage = Application.Transpose(Range("AQ1:AQ" & a))
    On Error Resume Next 'si toutes les valeurs ne sont pas des dates
    For j = 1 To a
      plage(i) =DATEDIF(RC[-33],R2C34,""m""
     
    Next
    With [J1].Resize(d)
      .Value = Application.Transpose(plage)
      End With
    End Sub
    PS: je veux faire une boucle pour faciliter le traitement, car j'ai beaucoup de données.


    Je vous remercie d'avance pour l'aide!

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Malheureusement je connais pas le code de cette fonction.
    As-tu consulté l'aide ? Mets le curseur sur la fonction et clique sur la touche F1.

    Philippe

  3. #3
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    je pense que tu fais la confusion avec le fonction "Excel Feuille" DateDif qui n'est plus documentée et n'apparaît pas dans les listes ou aide, mais fonctionne toujours et le fonction VBA DateDiff (2 "f"), qui est bien présente dans l'aide VBA, mais a un "f" de plus que l'autre et surtout une syntaxe différente

    Tout serait trop simple sinon, une fois ceci posé, je te dis comme Philippe fait un F1 sur DateDiff avec 2 f en VBA et ça sera OK

    DateDiff, fonction

    Renvoie une valeur de type Variant (Long) indiquant le nombre d'intervalles de temps entre deux dates données.
    Syntaxe

    DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
    cordialement,

    Didier

  4. #4
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 73
    Par défaut
    voila mon nouveau code qui ne fonctionne pas

    NB: je veux faire une différence de date en mois via une boucle
    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
    Sub calculret()
     
    'nomme colonne retards
    Range("AQ1").Select
        Selection.Locked = False
        Selection.FormulaHidden = False
        ActiveCell.FormulaR1C1 = "Retards"
        Columns("AP:AP").EntireColumn.AutoFit
     
     
    Dim a&, plage, j&
    Dim date1, date2 As Long
    date1 = CDate(Range("J2"))
     
    date2 = CDate(Range("$AH$2"))
     
    a = [A65536].End(xlUp).Row
    plage = Application.Transpose(Range("AQ1:AQ" & a))
     
    On Error Resume Next 'si toutes les valeurs ne sont pas des dates
    For j = 1 To a
      plage(j) = DateDiff(m, Range("J2"), Range("$AH$2"), vbMonday, vbUseSystem)
     
    date1 = date1 + 1
    Next
    With [J1].Resize(d)
      .Value = Application.Transpose(plage)
      End With
    End Sub
    HELP

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Tu as reçu deux messages de Philippe et Didier te suggérant de placer ton curseur sur la fonction DateDiff et appuyer sur F1.
    Lis bien l'aide sur cette fonction et tu verras que tu utilises mal l'argument Interval
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  6. #6
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 73
    Par défaut
    On a :

    interval:Expression de chaîne correspondant à l'intervalle de temps utilisé pour calculer la différence entre date1 et date2.

    J'ai mis comme valeur "m" pour une différence en mois.

    date1 est la valeur de la cellule J2, on incrémente J2+1=J3 ..
    date2 est la valeur de la cellule $AH$2

    Je ne vois pas où je me trompe...

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

Discussions similaires

  1. Code postal en fonction de la ville
    Par Pogny dans le forum Access
    Réponses: 14
    Dernier message: 07/11/2012, 20h25
  2. Réponses: 6
    Dernier message: 18/06/2006, 00h22
  3. Réponses: 2
    Dernier message: 17/05/2006, 11h43
  4. [Tableaux] demande de code pour une fonction.php
    Par carmen256 dans le forum Langage
    Réponses: 4
    Dernier message: 21/01/2006, 17h22
  5. optimiser le code d'une fonction
    Par yanis97 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 15/07/2005, 08h41

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