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 :

Format DateDiff avec Boucle


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2018
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2018
    Messages : 26
    Par défaut Format DateDiff avec Boucle
    Bonjour,

    Je chercher a calculer la différence de date entre deux colonnes.
    J'y arrive en direct sans boucle mais dès que je mets la boucle ça ne fonctionne plus.

    Voici mon code :

    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
    Sub Test()
    Dim i As Integer
    With Sheets("Base")
     
    ' Calcul des traitements de traitement globaux 
    i = 1
    While Cells(1 + i, 1) <> ""
        If Cells(1 + i, 44) = "" Then
        Else: Cells(1 + i, 56) = DateDiff("d", Cells(1 + i, 26).Value, Cells(1 + i, 44).Value)
        End If
    i = 1 + i
    Wend
     
    End With
    End Sub
    Merci

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Les dates sont enregistrer dans Excel en nombre de jours.
    Donc, DateDiff() n'est pas vraiment utile avec le paramètre "d".

    Ton If est trop compliqué.

    Tu as oublié de mette un "." devant les références de cellules pour qu'elles tiennent compte du With (ce qui est sans doute la raison du dysfonctionnement).

    Essaye ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Test()
    Dim i As Long
     
    With Sheets("Base")
        i = 1
        While Cells(1 + i, 1) <> ""
            If Cells(1 + i, 44) <> "" Then .Cells(1 + i, 56) = Int(.Cells(1 + i, 26).Value - .Cells(1 + i, 44).Value)
            i = 1 + i
        Wend
    End With
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2018
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2018
    Messages : 26
    Par défaut
    Bonjour,

    Merci pour ton retour.

    Cependant, j'obtiens un message d'erreur "Incompatibilité de type" et me surligne la partie du code après le then


    Je vois pas qu'elle est l'erreur dans cette ligne ...

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Hercule55 Voir le message
    Je vois pas qu'elle est l'erreur dans cette ligne ...
    Sans doute parce que l'erreur n'est pas dans la ligne de code mais dans le contenu des cellules.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2018
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2018
    Messages : 26
    Par défaut
    C'est bon ça marche en effet !

    La date la plus récente était en premier ce qui faisait un différence négative qui n'était pas prise en compte j'imagine !



    Merci !

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

Discussions similaires

  1. Verfier le format date_heure avec perl!
    Par badrogi dans le forum Langage
    Réponses: 2
    Dernier message: 10/08/2005, 14h24
  2. Réponses: 2
    Dernier message: 15/04/2005, 15h51
  3. Réponses: 10
    Dernier message: 05/04/2005, 10h25
  4. pb format datetime avec mysql
    Par ms91fr dans le forum Bases de données
    Réponses: 2
    Dernier message: 07/12/2004, 14h12
  5. [Format]nombres avec des 0
    Par zozolh2 dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 01/06/2004, 08h43

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