Option Explicit
Private Sub CommandButton1_Click()
Dim Données As Collection, TRés(), PointPaie As SsGr, Cas As Long, _
Détail, DétREFAC(), DétPaieH(), L As Long, C As Long
Application.ScreenUpdating = False
With Workbooks.Open(ThisWorkbook.Path & "\Paie-Hor.xlsx")
Set Données = GigIdx.Gigogne(GigIdx.TableUnique(Me.[A3], .Sheets("Feuil1").[A5]), 4)
.Close False: End With
ReDim TRés(1 To Données.Count, 1 To 26)
For Each PointPaie In Données
Cas = 0
For Each Détail In PointPaie.Co
If Détail(0) = 0 Then Cas = Cas Or 1: DétREFAC = Détail _
Else Cas = Cas Or 2: DétPaieH = Détail
Next Détail
L = L + 1
Select Case Cas
Case 1: ' Il n'existe que dans cette feuille.
For C = 1 To 26: TRés(L, C) = DétREFAC(C): Next C
Case 2: ' If n'existe que dans le Paie-hor.xlsx.
For C = 1 To 24: TRés(L, C) = DétPaieH(C): Next C
Case Else: ' Il existe des deux cotés.
For C = 25 To 26: TRés(L, C) = DétREFAC(C): Next C
For C = 1 To 24: TRés(L, C) = DétPaieH(C): Next C
End Select: Next PointPaie
Me.Rows(3).Resize(1000000).ClearContents
Me.[A3].Resize(L, 26).Value = TRés
End Sub