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 :

Faire coïncider des colonnes de dates qui n'évoluent pas de la même manière


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Chargé d'études statistiques
    Inscrit en
    Juillet 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'études statistiques
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2011
    Messages : 15
    Par défaut Faire coïncider des colonnes de dates qui n'évoluent pas de la même manière
    Bonjour,

    J'ai besoin de votre aide !

    Je sais pas si c'est possible sur excel,
    j'ai deux colonnes sur excel avec des dates et heures. La premières de type : "13/01/2009 11:53:20" et la deuxième de type : "13/01/09 11:53".
    le problème c'est que la première à un pas de temps d'environ 10 min et l'autre à un pas de temps d'environ 5min.
    Malheureusement les dates ne coïncides pratiquement jamais et une colonne évolue plus vite qu'une autre.
    Existe'il un moyen sur excel pour faire coïncider à peu prés le dates ?
    Merci pour votre aide.

  2. #2
    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 149
    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 149
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Il faudrait peut-être développer un peu plus ta demande.
    Il est possible de regrouper des dates même si les heures ne sont pas identiques
    Un petit exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD( (TRONQUE(A2) = TRONQUE($B$2:$B$15)) * 1 )
    Cette formule compte dans la plage B2:B15, le nombre de dates identiques à celle contenue dans A2, sachant que dans les 2 colonnes, les dates sont combinées avec les heures.
    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

  3. #3
    Membre averti
    Homme Profil pro
    Chargé d'études statistiques
    Inscrit en
    Juillet 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'études statistiques
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2011
    Messages : 15
    Par défaut
    Bonjour,

    merci Philippe pour ta réponse, elle es intéressante mais c'est pas vraiment ce que je recherche.
    j'ai mis un fichier excel, où il y a deux tableaux avec des datetime qui se trouvent sur les colonnes A et H, et je voudrais faire correspondre les datetime de la colonne A avec ceux de la colonnes H.
    Par exemple, prendre la première date de la colonne A et lui faire correspondre la date de la colonne de H qui se rapproche le plus.

    Merci
    Fichiers attachés Fichiers attachés

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    si j'ai bien compris tes 2 colonnes n'ont pas le même nombre de lignes .. comment veut-tu faire la correspondance ? en rajoutant des lignes à la colonne qui en manque ou bien en enlevant des lignes à la colonne qui en as le plus ...?

  5. #5
    Membre averti
    Homme Profil pro
    Chargé d'études statistiques
    Inscrit en
    Juillet 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'études statistiques
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2011
    Messages : 15
    Par défaut
    Salut,

    Oui, tu as bien compris, en enlevant des lignes à la colonnes qui en a en plus. C'est à dire les lignes qui n'ont pas eu de correspondances.

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Tiens j'ai préparé cela :

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Option Explicit
     
    Sub Equivalence()
     Dim sh As Worksheet
     Set sh = ThisWorkbook.Sheets("Feuil2") 'Feuille source..
     Dim i As Integer 'index dans 1° tableau
     Dim j As Integer 'index dans 2° tableau
     Dim k As Integer 'index précédent du 2° tableau
     j = 2
     
     For i = 2 To sh.Range("A1").CurrentRegion.Rows.Count
      Debug.Print sh.Cells(i, 1)
       k = j
       While sh.Cells(j, 8) <> "" And (sh.Cells(j, 8) < sh.Cells(i, 1))
            k = j
            j = j + 1
       Wend
       If sh.Cells(j, 8) <> "" Then
     
          sh.Cells(i, 4) = Y3(sh.Cells(k, 8), sh.Cells(j, 8), sh.Cells(i, 1), sh.Cells(k, 9), sh.Cells(j, 9))
          sh.Cells(i, 5) = Y3(sh.Cells(k, 8), sh.Cells(j, 8), sh.Cells(i, 1), sh.Cells(k, 10), sh.Cells(j, 10))
       End If
     
     Next
     
     
    End Sub
    Function Y3(X1 As Date, X2 As Date, X3 As Date, Y1 As Double, Y2 As Double) As Double
           Dim A As Double
           Dim B As Double
           If (X1 = X2) Then
              A = 0
              B = Y1
           Else
            A = (Y1 - Y2) / (X1 - X2)
             B = Y1 - (X1 * A)
           End If
           Y3 = X3 * A + B
    End Function

  7. #7
    Membre averti
    Homme Profil pro
    Chargé d'études statistiques
    Inscrit en
    Juillet 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'études statistiques
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2011
    Messages : 15
    Par défaut
    Salut

    Merci beaucoup !!
    c'est exactement ce que je voulais.

    juste une dernière question, tu as utilisé quel genre d'interpolation ?

  8. #8
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    as tu regardé/compris la fonction Y3 ? .. j'ai juste déterminé une droite reliant les 2 points encadrant la date en colonne A .. et puis grâce aux coefficients A et B définissant cette droite ( Y = A*X + B) j'ai calculé la valeur de Y pour la date en colonne A

  9. #9
    Membre averti
    Homme Profil pro
    Chargé d'études statistiques
    Inscrit en
    Juillet 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'études statistiques
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2011
    Messages : 15
    Par défaut
    salut,

    Oui j'ai regardé mais j'avait pas trop compris, maintenant c'est claire,
    je t'en remercie !

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 29/06/2012, 09h24
  2. [6.5.1] Faire apparaitre des colonnes vides
    Par zestlimon dans le forum Deski
    Réponses: 9
    Dernier message: 13/09/2008, 12h59
  3. [MySQL] Faire une jointure entre deux tables qui ne sont pas dans la même base de données
    Par sandddy dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 03/04/2008, 14h18
  4. position des colonnes du datagriedview qui change
    Par el_pilacho dans le forum VB.NET
    Réponses: 4
    Dernier message: 10/04/2007, 12h23
  5. Réponses: 46
    Dernier message: 04/01/2007, 19h02

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