Private Sub CommandButton1_Click()
'ouvrir le classeur source (en lecture seule)
Set classeurSource = Application.Workbooks.Open("D:\Macro_agicentre\source.xls", , True)
'définir le classeur destination
Set dest = ThisWorkbook.Sheets("Feuil1")
Application.ScreenUpdating = False
Dim monTablo()
With classeurSource.Sheets("Feuil1")
'repérage dernière cellule non vide en colonne B du fichier Source
derLigne = .Cells(65000, 2).End(xlUp).Row
For lig = 5 To derLigne
If .Cells(lig, 3) <> "" Then
ReDim Preserve monTablo(4, i) 'on redimensionne le tableau pour ajouter des données
monTablo(1, i) = .Cells(lig, 5)
monTablo(2, i) = .Cells(lig, 3)
monTablo(3, i) = .Cells(lig, 7)
monTablo(4, i) = .Cells(lig, 8) 'je crée une 4ème colonne dans "monTablo" avec le contenue de ma 8ème colonne venant de source. (com Florent)
i = i + 1
For Col = 9 To 11 'on vérifie la présence d'une valeur dans les colonnes "écran"
If .Cells(lig, Col) <> "" Then
ReDim Preserve monTablo(4, i)
monTablo(0, i) = .Cells(4, Col)
monTablo(2, i) = .Cells(lig, 3)
i = i + 1
End If
Next Col
End If
Next lig
End With
dest.Cells(7, 2).Resize(i, 4) = Application.Transpose(monTablo) 'on "colle" les données du tableau
classeurSource.Close False
Application.ScreenUpdating = True
End Sub