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 à l'essai
    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
    Points : 12
    Points
    12
    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
    12 922
    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 : 12 922
    Points : 28 908
    Points
    28 908
    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.

  3. #3
    Membre à l'essai
    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
    Points : 12
    Points
    12
    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 sénior


    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
    Points : 20 040
    Points
    20 040
    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 à l'essai
    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
    Points : 12
    Points
    12
    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 sénior


    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
    Points : 20 040
    Points
    20 040
    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 à l'essai
    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
    Points : 12
    Points
    12
    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 sénior


    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
    Points : 20 040
    Points
    20 040
    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 à l'essai
    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
    Points : 12
    Points
    12
    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