Comparer des dates

Fermé
HWAM Messages postés 6 Date d'inscription mercredi 25 juillet 2018 Statut Membre Dernière intervention 26 juillet 2018 - 25 juil. 2018 à 12:09
HWAM Messages postés 6 Date d'inscription mercredi 25 juillet 2018 Statut Membre Dernière intervention 26 juillet 2018 - 26 juil. 2018 à 08:52
Bonjour à tous,

Voila j'ai un problème assez complexe que je n'arrive pas à résoudre.

J'ai, dans une feuille 1 un intervalle de temps constitué de 2 dates ( colone A date 1, colone B date 2) et qui correspondent à une numéro de voiture

Dans une feuil 2, j'ai une infinité de dates d'utilisations avec des intervalles différents entre les dates pour chaque numéro de voiture (environ 30 à chaque fois).

Ce que j'arrive très bien a faire s'est pour chauqe numéro de voiture trouver les dates mais ce que je souhaite réélement c'est séléctionner les 10 premières dates après la première date 1 de l'intervalle dans la feuille 1 et les 10 dernières dates avant la date 2 de l'intervalle en feuil 1 (séléctioner les lignes)

Je ne sais pas si j'ai été assez précis ? Je m'en sors bein niveau code mais je ne vois pas comment je peux le construire et quels conditions mettre ?

Merci pour votre aide

2 réponses

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
25 juil. 2018 à 12:13
Bonjour Hwam, bonjour le forum,

Tout cela serait bien plus clair avec un fichier exemple reprenant la structure de ton fichier original et contenant une poignée de données... Dans un onglet ce que tu as avant et dans un autre ce que tu voudrais après...
0
HWAM Messages postés 6 Date d'inscription mercredi 25 juillet 2018 Statut Membre Dernière intervention 26 juillet 2018
25 juil. 2018 à 12:15
D'accord je vous fait ca tout de suite !!
0
HWAM Messages postés 6 Date d'inscription mercredi 25 juillet 2018 Statut Membre Dernière intervention 26 juillet 2018
25 juil. 2018 à 14:42
voila les 2 images de mes volets
0
HWAM Messages postés 6 Date d'inscription mercredi 25 juillet 2018 Statut Membre Dernière intervention 26 juillet 2018
25 juil. 2018 à 14:44
Mon problème est pour de récuperer les valeurs conso pour les 10 dates avant la date rendu !!
j'y arrive très bien pour les 10 premières dates après acquisition
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
25 juil. 2018 à 14:50
Re,

Heu... Quand tu crèves un pneu, tu amènes la roue ou une photo de la roue pour la faire réparer ?
N'ayant pas un niveau de cador, j'ai par habitude de tester les codes que je propose. Pour cela il me faudrait recréer ton fichier. Ni le temps ni l'envie...
Regarde du coté de https://www.cjoint.com (ou bien d'autres hébergeurs de fichier) pour nous envoyer un fichier...
0
HWAM Messages postés 6 Date d'inscription mercredi 25 juillet 2018 Statut Membre Dernière intervention 26 juillet 2018
25 juil. 2018 à 14:53
Re,

Excuse moi je ne connaissais pas cette possibilité. Voila le lien ci_Joint : https://www.cjoint.com/c/HGzm0Mm7J6A

Merci encore pour ton aide :) c'est vraiment sympa !!
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
25 juil. 2018 à 18:27
Re,

Si j'ai bien compris essaie comme ça :

Sub Macro1()
Dim C As Worksheet 'déclare la variable C (onglet Consomation)
Dim VA As Worksheet 'déclare la variable VA (onglet VOITURE AVANT )
Dim TC As Variant 'déclare la variable TC (Tableau Consomation)
Dim TVA As Variant 'déclare la variable TVA (Tableau Voiture Avant)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Integer 'déclare la variable J (incrément)
Dim K As Byte 'déclare la variable K (incrément)
Dim T As Double 'déclare la variable T (Total)
Dim N As Integer 'déclare la variable N (Nombre)

Set C = Worksheets("consomation") 'définit l'onglet C
Set VA = Worksheets("VOITURE AVANT ") 'définit l'onglet AV
TC = C.Range("A1").CurrentRegion 'définit le tableau TC
TVA = VA.Range("A1").CurrentRegion 'définit le tableau TVA
For I = 2 To UBound(TVA, 1) 'boucle 1 : sur toutes les lignes I du tableau TVA (en partant de la seconde)
    For J = 2 To UBound(TC, 1) 'boucle 2 : sur toutes les lignes J du tableau TC (en partant de la seconde)
        'condition : si les numéros et les dates correspondent (en colonne 2 pour les date de TVA)
        If TVA(I, 1) = TC(J, 1) And TVA(I, 2) = TC(J, 2) Then
            For K = J To J + 9 'boucle 3 : sur 10 lignes à partir de J
                'si le numéros correspondent, ajoute la consommation de chaque ligne, définit le nombre N
                If TVA(I, 1) = TC(K, 1) Then T = T + TC(K, 3): N = N + 1
            Next K 'prochaine ligne de la boucle 3
            TVA(I, 4) = T / N 'renvoie dans la donnée ligne I colonne 4 de TVA la moyenne du total par le nombre
        End If 'fin de la condition
        T = 0: N = 0 'réinitialise les variable T et N
        'condition : si les numéros et les dates correspondent (en colonne 3 les dates de pour TVA)
        If TVA(I, 1) = TC(J, 1) And TVA(I, 3) = TC(J, 2) Then
            For K = J - 9 To J 'boucle 4 : sur 10 lignes de J-9 à J
                'si le numéros correspondent, ajoute la consommation de chaque ligne, définit le nombre N
                If TVA(I, 1) = TC(K, 1) Then T = T + TC(K, 3): N = N + 1
            Next K 'prochaine ligne de la boucle 4
            TVA(I, 5) = T / N 'renvoie dans la donnée ligne I colonne 5 de TVA la moyenne du total par le nombre
        End If 'fin de la condition
    Next J 'prochaine ligne de la boucle 2
Next I 'prochaine ligne de la boucle 1
VA.Range("A1").CurrentRegion.ClearContents 'efface le contenu des valeurs de l'onglet VA
VA.Range("A1").Resize(UBound(TVA, 1), UBound(TVA, 2)).Value = TVA 'renvoie le tableau TVA dans A1 redimensionnée de l'onget VA
End Sub

0
HWAM Messages postés 6 Date d'inscription mercredi 25 juillet 2018 Statut Membre Dernière intervention 26 juillet 2018
26 juil. 2018 à 08:52
Super ! j'ai essayé ca hier soir et ca marche parfaitement !! merci infiniment pour ton aide
0