Tri par date (activation avec bouton)

Bonjour,

Je viens vers vous aujourd'hui suite à un problème que je rencontre dans un de mes projets. Je dois effectuer un tri par date automatique d'un tableau de valeurs contenant des références, noms, nombres, et dates de livraison de milliers de pièces.

J'ai pour cela fais un test sur un petit tableau, étant novice vba, j'ai avec l'enregistreur de macro créé une macro de tri avancé en fonction de deux dates butoires (date de début et date de fin). J'ai associé un bouton à ce tri pour rendre cela automatique, sauf que lorsque je relance le tri en modifiant une des dates, impossible d'obtenir un résultat satisfaisant (le tri ne se fait pas).

J'ai regardé sur le site la plupart des autres sujets similaires au mien, cependant dans aucun cas il n'y a ce problème...

Donc si quelqu'un pourrait au moins relire le macro et me dire ce qui cloche, ce serait super !

Je vous joint mon programme test.

Merci de votre aide et de votre compréhension

Cordialement

60test.xlsm (17.14 Ko)

Bonjour. Bienvenue sur le Forum

Essaie comme ceci avec un seul bouton et un seul code

Sub TRI_DATES()
' TRI_DATES Macro
    Range(Range("H2:K2"), Range("H2:K2").End(xlDown)).Select
    With Selection
    .ClearContents
    .Borders.Value = 0
    End With
    Range("A5:D21").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
        "Feuil1!Criteria"), CopyToRange:=Range("H2"), Unique:=False
    Range("H2").Select
End Sub

Cordialement

126test.xlsm (17.29 Ko)

Bonjour Amadéus,

et tout d'abord, merci pour ta réponse. Je viens de tester ton code, cependant il y a toujours le même soucis : cela n'affiche que le nom des colonnes en haut quand je change la date, et n'affiche pas les valeurs qui correspondent aux dates correctes. (J'ai bien vérifié que cela ne venait pas de l'écriture de mes dates.)

J'ai voulu pousser la chose un peu plus loin en déclarant mes dates de début et de fin comme variables, et en les demandant à l'utilisateur, et je voudrais modifier mon tri de manière à pouvoir trier et afficher les pièces contenues uniquement entre ces deux variables (c'est à dire dans le code du tri ne pas sélectionner une plage de cellules pour les dates, mais bien dire "pour chaque ligne, si la valeur de la date est bien comprise entre la variable DateDebut et la variable DateFin, alors la copier dans un tableau à côté".

Je ne sais pas si c'est clair, mais j'aimerai juste rendre ce code plus simple au niveau de la comparaison de chaque date de pièce.

Voici comment j'ai défini mes deux variables de dates :

Sub Dates()

   'Déclaration des variables (utilisation de variant car si on se trompe on ne rentrera pas une date, donc si on met Date ça plante)
    Dim DateDebut As Variant, DateFin As Variant

    'Suppression des cases de dates
    Range("E3").ClearContents
    Range("F3").ClearContents

    'Demande des dates à l'utilisateur

    DateDebut = InputBox("Veuillez entrer la date de début (jj/mm/aa): ")
        'Tant que la date n'est pas au bon format, rentrer une nouvelle date
        While Not IsDate(DateDebut)
            DateDebut = InputBox("Date non valide. Veuillez entrer la date de début (jj/mm/aa): ")
        Wend

    DateFin = InputBox("Veuillez entrer la date de fin (jj/mm/aa): ")
        'Tant que la date n'est pas au bon format, rentrer une nouvelle date

        While Not IsDate(DateFin)
            DateFin = InputBox("Date non valide. Veuillez entrer la date de fin (jj/mm/aa): ")
        Wend

   'Attribution des dates dans les cases concernées
    Range("E3") = DateDebut
    Range("F3") = DateFin

   'Affichage de la valeur des dates choisies dans une MsgBox
    MsgBox "La date de début est : " & DateDebut & Chr(10) & "La date de fin est : " & DateFin

End Sub

Merci de votre aide.

Bonjour

J'ai rajouté une MFC pour faciliter le contrôle et ne vois pas d'erreur.

Pourrais-tu renvoyer ce fichier avec mise en évidence de l'erreur dont tu parles?

Cordialement

84test.xlsm (17.28 Ko)

Bonjour,

J'ai finalement réussi à faire mon tri correctement, je vous en remercie.

Cependant, maintenant dans un autre fichier, j'ai les mêmes pièces, avec des références sur une feuille, et des temps de production en fonction de chaque référence sur une autre feuille.

J'aimerai que dans la colonne de ma feuille avec toutes les commandes, il y ai une colonne qui recherche pour chaque pièce le temps de production associé, et qui l'affiche à côté de la bonne pièce. J'ai pour cela utilisé la fonction RechercheV, qui fonctionne bien avec le nom de la pièce, mais lorsque je lui demande de rechercher avec la référence de la pièce, impossible de le faire...

Cela m'embête puisqu'une pièce du même nom peut apparaître plusieurs fois avec une référence différente. Et j'aimerai également que s'il ne trouve pas le temps de production pour la pièce (parce que ce n'est pas référencé dans la feuille des tps de prod), il m'encadre ou me colorie la case en une couleur spécifique pour bien le différencier.

Je joins un fichier pour illustrer tout cela.

Merci beaucoup,

Cordialement

88test.xlsm (20.87 Ko)

Bonjour ton fichier en retour

Petite remarque:

Je suppose qu'il y a un rapport entre le nombre de pièces et le temps de production par semaine, et donc que le résultat du temps total de production varie en fonction de ce nombre de pièces?

Ex; Ligne 5 , 18 pièces de Ref 1115.

Le temps de production sur la Feuille1 ne donne pas l'indication du Nombre de pièces permettant de déterminer le temps de production pour X pièces.

Cordialement

145test.xlsm (19.56 Ko)

Bonjour Amadéus,

Je te remercie vraiment pour ton aide, c'est exactement ce qu'il me fallait ! Pour le rapport entre temps de production - nombre de pièces je n'en ai pas besoin, ce tableau me servira a effectuer un planning par la suite et c'est simplement pour fixer une date limite automatique grâce au temps de production.

Encore merci beaucoup à toi, et bonne continuation !

(J'ajoute résolu dans le sujet)

Rechercher des sujets similaires à "tri date activation bouton"