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 86 87 88 89 90 91 92 93
| Sub Placer()
vehicule = Cells(1, 17)
ligne_début = InputBox("Placer : Ligne début ?")
ligne_fin = InputBox("Placer : Ligne fin ?")
' balaye toutes lignes du tableau "planning"
For ligne = ligne_début To ligne_fin
test = 0
If Cells(ligne, 3) <> vehicule Or Cells(ligne, 5) <> 0 Then GoTo saut3:
type_piece = Cells(ligne, 2)
For col_source = 36 To 39
For lig_source = 7 To 500
'si pas de référence, alors saut2
If Sheets(vehicule).Cells(lig_source, 1) = "" Then GoTo saut2:
' teste type_pièce et soit manquants,
' soit (sur J+3 : stock + encours camions + placé < stock mini)
If type_piece = Sheets(vehicule).Cells(lig_source, 3) And _
(Sheets(vehicule).Cells(lig_source, col_source) < 0 Or _
(col_source >= 39 And _
Sheets(vehicule).Cells(lig_source, 6) + _
Sheets(vehicule).Cells(lig_source, 16) + _
Sheets(vehicule).Cells(lig_source, 18) < _
Sheets(vehicule).Cells(lig_source, 7))) _
Then GoSub calandres_exotiques: _
Cells(ligne, 7) = Cells(ligne, 6) * Sheets(vehicule).Cells(lig_source, 5): _
Sheets(vehicule).Cells(lig_source, 18) = Sheets(vehicule).Cells(lig_source, 18) + _
Int(Cells(ligne, 7) * (1 - Sheets(vehicule).Cells(4, 2))): _
Cells(ligne, 5) = Sheets(vehicule).Cells(lig_source, 4): _
Cells(ligne, 4) = Sheets(vehicule).Cells(lig_source, 1): _
test = 1: GoTo saut
saut2:
Next lig_source
Next col_source
saut:
'rajoute la mention "JEUX" pour les bandeaux de portes X76II
If test = 1 Then _
If Sheets(vehicule).Cells(lig_source, 3) = "Band Portes" _
Then Cells(ligne, 9) = "JEUX"
' rajoute les mentions "URGENT" si pièces appelées le jour même, le lendemain ou J+2
date_urgence = Sheets(vehicule).Cells(5, col_source)
date_urgence = WeekdayName(Weekday(date_urgence - 1)) & " " & Day(date_urgence) & " " & MonthName(Month(date_urgence))
If test = 1 And col_source = 36 _
Then Cells(ligne, 8) = "RISQUE TAXI " & date_urgence
If test = 1 And col_source = 37 _
Then Cells(ligne, 8) = "Urgence " & date_urgence
If test = 1 And col_source = 38 _
Then Cells(ligne, 8) = date_urgence
saut3:
Next ligne
End
calandres_exotiques: ' rajoute le deuxième tour si calandre exotique en 2 tours
ref = Sheets(vehicule).Cells(lig_source, 2)
test_2tours = 0
For lig_2tours = 16 To 25
If Sheets(vehicule).Cells(lig_2tours, 52) = ref Then test_2tours = 1
Next
If ref = "" Or ref = 0 Then test_2tours = 0
If test_2tours = 0 Then GoTo fin
saut_page = 0
For page = 1 To 8
If ligne >= page * 53 - 6 And ligne <= page * 53 + 8 Then saut_page = 5
Next
ligne2 = ligne + 16 + saut_page
retour:
If Cells(ligne2, 2) = Cells(ligne, 2) And _
Cells(ligne2, 3) = Cells(ligne, 3) And _
Cells(ligne2, 7) = Cells(ligne, 7) And _
ligne2 <= 432 _
Then Cells(ligne2, 5) = Sheets(vehicule).Cells(lig_source, 4): _
Cells(ligne2, 4) = Sheets(vehicule).Cells(lig_source, 2): _
Cells(ligne2, 6) = Cells(ligne2, 7) / Sheets(vehicule).Cells(lig_source, 5): _
Cells(ligne, 9) = "1er tour": _
Cells(ligne2, 9) = "2è tour" _
Else Cells(ligne2, 2).Select: _
MsgBox ("Impossible de placer de la calandre exotique " & _
Sheets(vehicule).Cells(lig_source, 4) & _
", ref " & ref & ", qui est en 2 tours." & Chr(13) & _
"Il faut modifier la ligne " & ligne2 & _
", pour qu'elle soit identique à la ligne " & ligne & "."): End
fin:
Return
End Sub |
Partager