Comparer des dates

HWAM Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
HWAM Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   160
 
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   Statut Membre Dernière intervention  
 
D'accord je vous fait ca tout de suite !!
0
HWAM Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
voila les 2 images de mes volets
0
HWAM Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   160
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   160
 
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   Statut Membre Dernière intervention  
 
Super ! j'ai essayé ca hier soir et ca marche parfaitement !! merci infiniment pour ton aide
0