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
| Sub Analyse()
Dim Dde(10, 3, 2)
'tableau Dde(N° commande, Type,Statut)
'N° commande 0 et Statut 0 = libellé des types
' Type 1 = Appro
' Type 2 = Fabrication
' Type 3 = Production
'Statut 0 = indicateur de données saisies (0 ou 1)
'Statut 1 = En cours
'Statut 2 = traitée
MaxNum = 0
'debut du tableau des valeurs à analyser
Lig = 4
Col = 2
Erase Dde
Dde(0, 1, 0) = "Appro"
Dde(0, 2, 0) = "Fabrication"
Dde(0, 3, 0) = "Production"
Do
x = Cells(Lig, Col).Value
If x = "" Then Exit Do
NumDde = Right(x, Len(x) - 7)
'hypothèse : x=Demandeyyy avec yyy = N° commande (=NumDde)
If MaxNum < NumDde Then MaxNum = NumDde
Typ = Cells(Lig, Col + 1).Value
Stat = Cells(Lig, Col + 2).Value
Select Case Typ
Case Is = "Appro"
If Stat = "En cours" Then
Dde(NumDde, 1, 1) = Dde(NumDde, 1, 1) + 1
Dde(NumDde, 1, 0) = 1
Else
Dde(NumDde, 1, 2) = Dde(NumDde, 1, 2) + 1
Dde(NumDde, 1, 0) = 1
End If
Case Is = "Fabrication"
If Stat = "En cours" Then
Dde(NumDde, 2, 1) = Dde(NumDde, 2, 1) + 1
Dde(NumDde, 2, 0) = 1
Else
Dde(NumDde, 2, 2) = Dde(NumDde, 2, 2) + 1
Dde(NumDde, 2, 0) = 1
End If
Case Is = "Production"
If Stat = "En cours" Then
Dde(NumDde, 3, 1) = Dde(NumDde, 3, 1) + 1
Dde(NumDde, 3, 0) = 1
Else
Dde(NumDde, 3, 2) = Dde(NumDde, 3, 2) + 1
Dde(NumDde, 3, 0) = 1
End If
End Select
Lig = Lig + 1
Loop
'affichage résultats
Lig = 4
Col = 6
Cells(Lig - 1, Col).Value = "Nature"
Cells(Lig - 1, Col + 1).Value = "Type"
Cells(Lig - 1, Col + 2).Value = "En cours"
Cells(Lig - 1, Col + 3).Value = "Traitée"
For i = 1 To MaxNum
Cells(Lig + i - 1, Col).Value = "Demande" & i
For j = 1 To 3
If Dde(i, j, 0) = 1 Then
Cells(Lig + i - 1, Col + 1).Value = Dde(0, j, 0)
Cells(Lig + i - 1, Col + 2).Value = Dde(i, j, 1)
Cells(Lig + i - 1, Col + 3).Value = Dde(i, j, 2)
End If
Next j
Next i
End Sub |
Partager