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 :

calcul sur les dates


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 293
    Par défaut calcul sur les dates
    bonjour,

    je voudrais pouvoir comparer des dates exprimées en mois "mmm-yy"
    la comparaison me calcule le nombre de jours mais sur une année et en fait je voudrais que la comparaison , fonction datediff, me renvoie le nombre de jours exact en prenant compte des années indiquées dans la date
    en piéce jointe le fichier excel

    merci pour celui qui me donne la bonne solution
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Bonjour,

    Visiblement ton sujet n'a pas beaucoup de sucées (il faut dire que les pièce jointe font fuire un certain nombre de personne). Je vais essayer de te donner quelque piste de réflexion. (je n'ai malheureusement pas le temps de regarder plus loin)

    Tout d'abord un peu de lecture qui pourra être utile si mes idées ne sont pas suffisantes Dates et Heures

    ...

    Bon en fait je crois ben qu'en testant mon idée j'ai trouvé une solution

    tu écrit tes dates
    'janv-08
    quand ton prog lit ca, il prend comme date le 08/01/2009 (tu l'aurais vu en faisant une belle déclaration de variable au début de ton programme, et en avancent pas a pas avec les variable local d'affichées )

    Pour résoudre ce problème
    Fait un clique droit sur ta cellule
    choisie "Format de cellule", onglet "Nombre", dans la liste choisie Personalisé" et tu met comme formule
    Ensuite enlève le '

    Et du coup ton date diff donne la bonne valeur
    car maintenant
    mois_max (si tu le déclare bien en date) donne 01/01/2008

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 293
    Par défaut
    merci c'est ça mais mon pb se complique du fait que le tableau je le récupére en automatique depuis primavera qui me fournit la ligne de date avec un forcage en texte le fameux ' que tu veux me faire enlever, donc par vba je ne sais pas faire si ce n'est que de reconstruire une fonction text2date et en fait c'est ça qu'il faut faire

    j'ai une autre angoisse c'est que le résultat sera par exemple 01/10/09 pour le 1 oct 2009 et que vba me le transforme en 10 janvier 2009 et ça c'est con, je vois pas comment faire pour l'exploiter par la suite

    Merci pour ton aide

  4. #4
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Ca date un peu je ne suis pas sur de bien m'en souvenir
    mais pour enlever le '
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if left cells(i,j),1)="'" then cells(i,j)=right(cells(i,j),len(cells(i,j))-1)
    Et pour le format tu peux très bien le faire par macro utilise l'enregistreur de macro pour avoir la commande en question et applique la sur chaque cellule

    Quand a ton angoisse je te donne ce lien
    Regarde également les différent poste qui on déjà été fait sur ce forum (la fonction recherche est ton amie)
    Et fait plusieur test tu finira par trouver le truc

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Vous avez peut-être trouvé votre solution, mais comme vous n'avez pas indiqué "Résolu", à toutes fins utiles :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    dercol = Range("a1").End(xlToRight).Column
    derligne = Range("a1").End(xlDown).Row
     
    mois_min = "01/" & Format(Cells(1, dercol), "mm") & "/" & Right(Cells(1, dercol), 2)
    mois_min = DateAdd("m", 1, mois_min)
    mois_min = DateAdd("d", -1, mois_min)
    mois_max = "01/" & Format(Cells(1, 4), "mm") & "/" & Right(Cells(1, 4), 2)
    mois_max = DateAdd("d", -1, mois_max)
     
    ec = DateDiff("m", mois_max, mois_min)
    For lig = 2 To derligne
    For col = 4 To dercol
    c'est un peu du bricolage, il y a sans doute mieux, mais c'est simple et à priori cela fonctionne.

Discussions similaires

  1. calcul sur les dates
    Par housni dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/08/2007, 16h38
  2. Oracle 10g - calcul sur les dates
    Par themateo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 17/08/2007, 10h50
  3. Calcul sur les dates
    Par Stargate SG1 dans le forum Access
    Réponses: 2
    Dernier message: 04/02/2007, 16h09
  4. [Dates] Calcul sur les dates...
    Par gawelldanor dans le forum Langage
    Réponses: 10
    Dernier message: 04/04/2006, 11h07
  5. [C#] Calcul sur les dates avec des DateTimePicker
    Par alizee971 dans le forum Windows Forms
    Réponses: 10
    Dernier message: 02/04/2005, 17h14

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