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
| Option Explicit
Public Sub MAJ()
Dim oSh1 As Worksheet
Dim oSh2 As Worksheet
Dim oShRes As Worksheet
Dim iLig1 As Integer
Dim iDerLig1 As Integer
Dim iLig2 As Integer
Dim iDerLig2 As Integer
Dim iDerLig3 As Integer
Dim iEcr As Integer
Dim iDeb As Integer
Dim iFin As Integer
Set oSh1 = Worksheets("Feuil1")
Set oSh2 = Worksheets("Feuil2")
Set oShRes = Worksheets("Resultat")
'dégroupe
On Error Resume Next
oShRes.Rows.Rows.Ungroup
On Error GoTo 0
iDerLig1 = oSh1.Range("B" & Rows.Count).End(xlUp).Row
iDerLig2 = oSh2.Range("B" & Rows.Count).End(xlUp).Row
iDerLig3 = oShRes.Range("B" & Rows.Count).End(xlUp).Row
oShRes.Range(Cells(4, "B"), Cells(iDerLig3, "H")).Clear 'on efface les précédents résultats
iEcr = 4
For iLig1 = 5 To iDerLig1
iDeb = -1
iFin = -1
oShRes.Range("B" & iEcr & ":H" & iEcr).Value = oSh1.Range("B" & iLig1 & ":H" & iLig1).Value
oShRes.Range("B" & iEcr + 1 & ":H" & iEcr + 1) = Array("PRODUCT LAB.", "ACTOR NAME", "ACTOR SEG", "PNB", "E.V.A", "R.W.A", "Rating")
oShRes.Range("B" & iEcr + 1 & ":H" & iEcr + 1).Interior.Color = RGB(217, 226, 243)
iEcr = iEcr + 2
For iLig2 = 5 To iDerLig2
If oSh2.Range("B" & iLig2).Value = oSh1.Range("B" & iLig1).Value Then
If iDeb = -1 Then
iDeb = iEcr
End If
iFin = iEcr
'ACTOR ID
oShRes.Range("B" & iEcr).Value = oSh2.Range("G" & iLig2).Value
'ACTOR NAME
oShRes.Range("C" & iEcr).Value = oSh1.Range("C" & iLig1).Value
'ACTOR SEG
oShRes.Range("D" & iEcr).Value = oSh1.Range("D" & iLig1).Value
'PNB
oShRes.Range("E" & iEcr).Value = oSh2.Range("C" & iLig2).Value
'E.V.A
'R.W.A
'Rating
'ligne suivante
iEcr = iEcr + 1
End If
Next iLig2
'regroupe
If iDeb <> -1 And iFin <> -1 Then
oShRes.Rows(iDeb & ":" & iFin).Rows.Group
End If
Next iLig1
Set oSh1 = Nothing
Set oSh2 = Nothing
Set oShRes = Nothing
'Sheets("feuil2").Visible = xlVeryHidden
End Sub |
Partager