Date correspondante à un produit inférieure à une date donnée

Résolu
hamzatoon -  
 hamzatoon -
Bourjour,

j'ai un tableau qui contient plusieurs produits repétitifs, chaque fois le produit est livré, une date de laivraison est enregistrée.
dans un autre tableau, je recheche a afficher la date da laivraison de chaque produit et qui soit inferieur a une date donnéé.

pouviez vous m'aidez?

Configuration: Windows / Chrome 60.0.3112.90
A voir également:

8 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, il me semble impossible de t'aider, tu n'expliques ni quelle aide tu recherches, ni ne donnes d'information concrète.
1
hamzatoon
 
un (tableau BDD), (collonne A) des produits (collonne F) des dates de livraison
dans un (autre tableau), (collonne A) des produits, (case C1) correspond à une date donnee par moi meme.
je cherche a afficher dans la (collone B) la date de laivraison pour chaque produit inferieure à C1.

https://www.cjoint.com/c/JCDkf0pcPaH
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
dans l'onglet BDD, la colonne F est vide.
je suppose que c'est dans la colonne B de l'onglet BORD que tu veux afficher des dates.
peux-tu donner des exemples de ce que tu attends dans cette colonne?
0
hamzatoon
 
merci yg_be pour vous reponses rapides.
en faite oui c'eat la collone B au lieu de F
dans la piece jointe, j'ai mis des emeple des dates corespond.

https://www.cjoint.com/c/JCDpRdQgm1A
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
si pour un produit il y a plusieurs dates de livraisons antérieures à la date donnée, que faut-il retourner?
0
hamzatoon
 
je cherche à affiche daans la feuille BORD la date just avant la date C1 pour chaque produit
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
je suggère ceci:
Option Explicit

Private Sub dattes()
Dim flivraison As Worksheet, frecent As Worksheet, rlivraison As Range
Dim rrecent As Range, ddonn As Date, drec As Date, prec As String, prod As Range
Dim liv As Range
Set flivraison = ThisWorkbook.Sheets("BDD")
Set frecent = ThisWorkbook.Sheets("BORD")
Set rrecent = Intersect(frecent.UsedRange, frecent.[A:A])
Set rlivraison = Intersect(flivraison.UsedRange, flivraison.[A:A])
ddonn = frecent.[C1]
For Each prod In rrecent
    drec = 0
    For Each liv In rlivraison
        If liv = prod And liv.Offset(0, 1) > drec And liv.Offset(0, 1) <= ddonn Then
            drec = liv.Offset(0, 1)
        End If
    Next liv
    If drec > 0 Then
        prod.Offset(0, 1) = drec
    End If
Next prod
End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
hamzatoon
 
merci beaucoup, ca marche tres bien.
seulement que l'orsque vous mettez une date (C1), executer, si vous changer cette date à une autre anterieur puis executer, sa bouge pas dans tous les cases.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
donne un exemple précis d'anomalie.
peut-être veux-tu dire que certaines cases ne deviennent pas vides?
alors, ajoute après la ligne 20
     else
            prod.Offset(0, 1) = ""
0
hamzatoon
 
la premiere fois j'ai mis 03/03/2020, puis executer. OK
quand je met 01/01/2020, puis executer. ca bouge pas

https://www.cjoint.com/c/JDbnUygWidC
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
tu as partagé un fichier sans le code... je ne peux donc pas vérifier si tu as appliqué ma suggestion en #10.
merci aussi d'être plus précis. au lieu de "ca bouge pas", explique quelle case ne contient pas ce que tu attends.
0
hamzatoon
 
oops, j'ai pas fait attention. voici le fichier:

https://www.cjoint.com/c/JDcixdt7VCw
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
je vois donc que tu n'as pas tenu compte de ma suggestion en #10.
0
hamzatoon
 
effectivement, quand j'ai complété ce ce qui est en #10, ça va donner ce qui je cherche.

1000 fois merci.
0