Copier automatiquement une ligne d'une feuille sur une autre feuille suivant une date donnée.

DAVID-44-

XLDnaute Occasionnel
Bonjour, j'ai créé un classeur afin de gérer correctement les stocks.
Aussi, je souhaiterais, dans un premier temps, être alerté sur la feuille "URGENT" une semaine avant, sur les produits qui seraient à passer suivant leurs DLC dans toutes les catégories de la feuille "STOCK" ( ???? - Divers - Frais etc...).
En fait, copier automatiquement sur la feuille "URGENT", les lignes des produits, dont les DLC approchent de la date, une semaine avant et trier de haut en bas les produits de la date les plus prêts à la date la plus éloignée.

J'ai fait des essais, mais je n'y arrive pas.
Merci de votre aide.
 

Pièces jointes

  • STOCK. (2).xlsm
    102.9 KB · Affichages: 16
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour David,
A tester en PJ avec :
VB:
Sub Worksheet_Activate()
    Range("B9:G100").ClearContents
    LenCours = 9
    For L = 9 To 158
        If IsDate(Sheets("STOCK").Cells(L, "G")) And Sheets("STOCK").Cells(L, "G") <= Date - 7 Then
            Sheets("Urgent").Cells(LenCours, "B") = Sheets("STOCK").Cells(L, "B")
            Sheets("Urgent").Cells(LenCours, "C") = Sheets("STOCK").Cells(L, "C")
            Sheets("Urgent").Cells(LenCours, "E") = Sheets("STOCK").Cells(L, "E")
            Sheets("Urgent").Cells(LenCours, "F") = Sheets("STOCK").Cells(L, "G")
            Sheets("Urgent").Cells(LenCours, "G") = Sheets("STOCK").Cells(L, "H")
            LenCours = LenCours + 1
        End If
    Next L
    Range("B9:G100").Select
    ActiveWorkbook.Worksheets("URGENT").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("URGENT").Sort.SortFields.Add Key:=Range("F9:F100") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("URGENT").Sort
        .SetRange Range("B9:G100")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    [B6].Select
End Sub
La macro se lance quand on sélectionne la page URGENT.
 

Pièces jointes

  • STOCK. (2).xlsm
    107.3 KB · Affichages: 10

DAVID-44-

XLDnaute Occasionnel
Rebonjour, le procédé fonctionne, mais la date n'est pas la bonne ! En fait, j'aimerais être alerté dans " URGENT ", quand la DLC arrive près (1 semaine avant) de la date du jour c'est-à-dire pour cette semaine: du 15/10/2020 au 22/10/2020.
 

DAVID-44-

XLDnaute Occasionnel
Bonjour, je reviens avec mon fichier, car je viens de m'apercevoir que dans ma feuille "URGENT", j'ai toutes les dates après le jour d'aujourd'hui et j'aimerais simplement être alerté que sur une semaine (par ex. : du 23/10/2020 au 30/10/2020). J’ai bien essayé de modifier, mais sans succès !

Merci de votre aide.
 

Pièces jointes

  • STOCK. (4).xlsm
    110.7 KB · Affichages: 5

sylvanu

XLDnaute Barbatruc
Supporter XLD
Par contre votre méthode pose un problème.
Dans stock vous ne pouvez plus insérer de ligne en cliquant sur le N° de ligne et faire Insertion ... car ça ouvre le calendrier puisque en sélectionnant la ligne vous sélectionner clic droit la cellule I.
A voir comment vous allez contourner le problème, si tant est que cela en soit un.
Peut être devrions nous effacer la ligne et non la supprimer, mais dans ce cas il y aura des "trous" dans la liste stock.
 

Discussions similaires

Statistiques des forums

Discussions
315 132
Messages
2 116 589
Membres
112 798
dernier inscrit
nicoolio