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
| Workbooks("Données du graphique_Délai LUP QC_K2K3_DEAPB.xlsx").Worksheets("NDdoc+P2").Activate
'Dernière ligne renseignée de la feuille de calculs
Dim DerLig As Variant
DerLig = Worksheets("NDdoc+P2").UsedRange.SpecialCells(xlCellTypeLastCell).Row
'Mettre en J2 le premier jour de l'année
[J2].FormulaLocal = Format("01/01/" & Year(Now), "dd/mm/yyyy")
Worksheets("NDdoc+P2").Range(Cells(1, 1), Cells(DerLig, 1)).AutoFilter Field:=1, Criteria1:=">=" & Range("J2")
'Crée la feuille pour le Year2Date et nomme les colonnes
Sheets.Add After:=ActiveSheet
ActiveSheet.Name = "YearToDate"
Range("A1").FormulaR1C1 = "DATE_P2"
Range("B1").FormulaR1C1 = "Délai" & Chr(10) & " Nddoc+P2"
Range("F1").FormulaR1C1 = "MOIS_P2"
Range("G1").FormulaR1C1 = "Tri " & Chr(10) & "lups/mois"
Range("H1").FormulaR1C1 = "Moyenne " & Chr(10) & "lups/mois"
'Copie les données du NDdoc+P2
Sheets("NDdoc+P2").Select 'Copie DATE_P2
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Copy
Sheets("YearToDate").Select
Range("A1").Select
ActiveSheet.Paste
Sheets("NDdoc+P2").Select 'Copie Délai NDdoc+P2
Range("B1").Select
Range(Selection, Selection.End(xlDown)).Copy
Sheets("YearToDate").Select
Range("B1").Select
ActiveSheet.Paste
Dim op As Integer
op = Range("B" & Rows.Count).End(xlUp).Row 'op : Dernière ligne de la colonne B
'Entre la formule en colonne F et G
Range("F2:F" & op).FormulaLocal = "=TEXTE(A2;""mmmm aaaa"")"
Range("G2:G" & op).FormulaLocal = "=SI(F1=F2;""x"";F2)"
Dim fl As Worksheet
Dim NooLig As Integer, DerrLig As Long
Set fl = Worksheets("NDdoc+P2")
DerrLig = Range("A" & Rows.Count).End(xlUp).Row
'Fait la moyenne
Dim FL1 As Worksheet
Dim NoLig As Integer, DerLigg As Long
Dim cpt As Integer
Set FL1 = Worksheets("YearToDate")
DerLig = Range("B" & Rows.Count).End(xlUp).Row
cpt = 0
FL1.Cells(2, 8) = FL1.Cells(2, 2) 'copie la première valeur (délai NDdoc+P2)
For NoLig = 3 To DerLig + 1
If FL1.Cells(NoLig, 7).Value = "x" Then 'Parcourt la colonne G et regarde si une cellule contient un "x"
cpt = cpt + 1 'Incrémente le cpt : cpt sert à savoir si il y a un autre "x" après
FL1.Cells(NoLig, 8).Offset(-cpt, 0) = FL1.Cells(NoLig, 8).Offset(-cpt, 0) + FL1.Cells(NoLig, 2) 'Fais la somme de la colonne d'avant de la cellule en diagonale
Else
If cpt <> 0 Then 'Si il y a eu des x avant
cpt = cpt + 1 'Incrémente la colonne G pour copier la ligne d'après
FL1.Cells(NoLig, 8).Offset(-cpt, 0) = FL1.Cells(NoLig, 8).Offset(-cpt, 0) \ cpt 'Fait la moyenne
End If
Cells(NoLig, 8) = Application.WorksheetFunction.Sum(Range(Cells(NoLig, 2), Cells(2, 2))) 'Somme des mois précédents
cpt = cpt - 1 'Rénitialise le cpt à 0
End If
Next |
Partager