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
| Sub retard_frais()
Dim cpt, cpt2, cpt3, CNUF1, CNUF2, Cat1, Cat2 As Integer
Dim base As String
Dim FichO, Recept, HeuRecpt, CarnetCde As Workbook
Dim Recept1, FichO1 As Worksheet
Dim der As Long
Set Recept = Workbooks.Open(Filename:="C:\Users\kguesmia\Documents\Retard Frais\code camion réception.xls")
Set FichO = Workbooks.Open(Filename:="C:\Users\kguesmia\Documents\Retard Frais\Plan de transport AE 2016.xlsx")
Set Recept1 = Recept.Sheets(1)
Set FichO1 = FichO.Sheets(1)
Set HeuRecpt = Workbooks.Open(Filename:="C:\Users\kguesmia\Documents\Retard Frais\Heure arrivé camion.xlsx")
Set CarnetCde = Workbooks.Open(Filename:="C:\Users\kguesmia\Documents\Retard Frais\Carnet de cde Louviers.xls")
Recept.Activate
With Recept1
der = .Cells.SpecialCells(xlCellTypeLastCell).Row
Cells.Replace What:="Libact:BASE DE ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("R3").Value = "Heure d'arrivé"
' je récupère une heure issue d'une cellule au format hh:mm:ss
Range("R4").FormulaLocal = "=RECHERCHEV(N4;'Heure arrivé camion.xlsx'!Tableau_Gestion_des_Zones_Reception_V.07.01.2013[[N° de Passage]:[Heure de Presentation du Camion au Guichet]];8;FAUX)"
Range("R4").Select
Selection.AutoFill Destination:=Range("R4:R" & der)
Calculate
Columns("R:R").Select
Selection.NumberFormat = "h:mm;@" 'je modifie le format pour supprimer les secondes
base = RTrim(Range("A1"))
End With
cpt = 1
Do While FichO1.Cells(1, cpt).Value <> base
cpt = cpt + 1
Loop
cpt2 = 5
cpt3 = 2
Recept1.Range("S3").Value = "Heure MAX prévu"
' je récupere une date issue d'une cellule au format standard sous la forme DD/MM/YY
Recept1.Range("S4").FormulaLocal = "=RECHERCHEV(P4;'[Carnet de cde Louviers.xls]Feuille 1'!$F$6:$J$28;5;FAUX)"
Range("S4").Select
Selection.AutoFill Destination:=Range("S4:S" & der)
Calculate
Do
CNUF1 = Val(Recept1.Range("O" & cpt2).Value)
Cat1 = Val(Recept1.Range("A" & cpt2).Value)
Do
cpt3 = cpt3 + 1
Cat2 = Val(FichO1.Range("C" & cpt3).Value)
CNUF2 = Val(FichO1.Range("B" & cpt3).Value)
Loop While CNUF1 <> CNUF2 Or Cat1 <> Cat2 And FichO1.Range("A" & cpt3).Value <> ""
HeurePrev = Right(FichO1.Cells(cpt3, cpt), 5) ' je récupere une heure issue d'une cellule standard.
DatePrev = Recept1.Range("S" & cpt2).Value ' date récupérée auparavant avec mon RechercheV
Recept1.Range("S" & cpt2).Value = DatePrev & " " & HeurePrev ' j'associe les deux varariable du dessus pour en faire un format DD/MM/YY hh:mm
DatePrev = Recept1.Range("S" & cpt2).Value ' j'associe la concaténation du dessus à ma variable
DateArriv = Recept1.Range("Q" & cpt2).Value & " " & Recept1.Range("R" & cpt2).Value ' j'associe deux cellules pour en faire un format DD/MM/YY hh:mm
If DatePrev < DateArriv Then
Recept1.Range("T" & cpt2).Value = DatePrev - DateArriv
End If
cpt2 = cpt + 2
cpt3 = 2
Loop While Recept1.Range("A" & cpt2).Value <> "" |
Partager