1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
| Sub ExtractionNégoce()
Dim Date_plus_Delai As Date
Sheets("Planning Négoce").Rows("2:" & Sheets("Planning Négoce").Range("A" & Rows.Count).End(xlUp).Row).ClearContents
Sheets("Plan de livraison").Activate
For i = 2 To Sheets("Pièces de Négoce").Range("A" & Rows.Count).End(xlUp).Row
For j = 2 To Sheets("Plan de livraison").Range("A" & Rows.Count).End(xlUp).Row
délai = Sheets("Pièces de Négoce").Cells(j, 3).Value
Date_plus_Delai = Format(Now + (délai) + 56, "yyyy-mm-dd")
'si la pièce du plan de livraison est contenue dans la liste des pièces de négoce,
'et que sa date de livraison est inférieur à la date du jour + le délai entré par l'utilisateur
If Sheets("Pièces de Négoce").Cells(i, 1).Value = Cells(j, 1).Value And _
Sheets("Pièces de Négoce").Cells(i, 2).Value = Cells(j, 2).Value And _
Cells(j, 5).Value < Date_plus_Delai Then
'copie vers le planning de négoce toute la ligne du plan de livraison associée à cette pièce
Rows(j & ":" & j).Copy Destination:=Sheets("Planning Négoce").Rows(Sheets("Planning Négoce").Range("A" & Rows.Count).End(xlUp).Row + 1 & ":" & Sheets("Planning Négoce").Range("A" & Rows.Count).End(xlUp).Row + 1)
'========================================================
'Nouvelle ligne ajoute delai
Sheets("Planning Négoce").Cells(Sheets("Planning Négoce").Range("A" & Rows.Count).End(xlUp).Row, 8).Value = Sheets("Pièces de Négoce").Cells(i, 3).Value
'Nouvelle ligne ajoute nouvelle colonne date + delai (servira à trier plus loin)
Sheets("Planning Négoce").Cells(Sheets("Planning Négoce").Range("A" & Rows.Count).End(xlUp).Row, 9).Value = Sheets("Planning Négoce").Cells(Sheets("Planning Négoce").Range("A" & Rows.Count).End(xlUp).Row, 5).Value + Sheets("Planning Négoce").Cells(Sheets("Planning Négoce").Range("A" & Rows.Count).End(xlUp).Row, 8).Value
'========================================================
For k = 6 To Sheets("PlanningFinal").Range("A" & Rows.Count).End(xlUp).Row
'on vérifie si ligne pareil de planning et Pièces de Négoce
If Sheets("PlanningFinal").Cells(k, 1).Value = Sheets("Pièces de Négoce").Cells(i, 1).Value And Sheets("PlanningFinal").Cells(k, 2).Value = Sheets("Pièces de Négoce").Cells(i, 2).Value Then
'si pareil on supprime
Sheets("PlanningFinal").Range(k & ":" & k).Delete Shift:=xlUp
End If
Next
End If
Next
Next
Worksheets("Plan de livraison").Range("A1:J1").Copy Destination:=Worksheets("Planning Négoce").Range("A1:J1")
derligne = Worksheets("Planning Négoce").Cells(Rows.Count, 4).End(xlUp).Row
For i = derligne To 2 Step -1
If Worksheets("Planning Négoce").Cells(i, 4) = 0 Then
Worksheets("Planning Négoce").Rows(i).Delete
End If
Next i
Sheets("Planning Négoce").Activate
'=============================================================
'Nouveau code
'trie selon date
Rows("2:" & Range("A" & Rows.Count).End(xlUp).Row).Select
ActiveWorkbook.Worksheets("Planning Négoce").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Planning Négoce").Sort.SortFields.Add Key:=Range( _
"I2:I" & Range("A" & Rows.Count).End(xlUp).Row), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Planning Négoce").Sort
.SetRange Range("A2:J" & Range("A" & Rows.Count).End(xlUp).Row)
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A1").Select
'================================================================
MsgBox "Fin"
End Sub |
Partager