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
| Sub Sorties_9_Semaines_Avec_If_Tableau()
Dim RefCBN As String, RefSortie As String, NoSemCBN As String, NoSemSortie As String
Dim NbLgSortie As Long, NbLgCBN As Long, NbLgCBNCalcul As Long, k As Long, j As Long
Dim Qte As Double, TabloQteSortie() As Double
Dim Sortie, CBN, REF
Dim i As Byte
Application.ScreenUpdating = False
With Worksheets("Rq Sorties")
NbLgSortie = .Range("A" & .Rows.Count).End(xlUp).Row
Sortie = .Range("A1:H" & NbLgSortie)
End With
With Sheets("CBN")
NbLgCBN = .Range("C" & .Rows.Count).End(xlUp).Row
If NbLgCBN > 6 Then
NbLgCBNCalcul = .Range("Q" & .Rows.Count).End(xlUp).Row
.Range("Q7:Y" & Application.Max(NbLgCBNCalcul, NbLgCBN)).ClearContents
CBN = .Range("Q6:Y6")
REF = .Range("C7:C" & NbLgCBN)
'**********************************************
NbLgCBN = NbLgCBN - 6
ReDim TabloQteSortie(1 To NbLgCBN, 1 To 9)
For i = 1 To 9
NoSemCBN = CBN(1, i)
For j = 1 To NbLgCBN
RefCBN = REF(j, 1)
For k = 2 To NbLgSortie
RefSortie = Sortie(k, 1)
NoSemSortie = Sortie(k, 8)
If RefSortie = RefCBN And NoSemSortie = NoSemCBN Then Qte = Qte + Sortie(k, 4)
Next k
TabloQteSortie(j, i) = Qte
Qte = 0
Next j
Next i
.Range("Q7").Resize(NbLgCBN, 9) = TabloQteSortie
End If
End With
End Sub |
Partager