Bonsoir lionel,
En pièce jointe, un exemple pour t'aider à résoudre ton problème :
Public Sub Traitement()
Dim TabTemp As Variant
Dim F As Byte, L As Long, C As Byte
Application.ScreenUpdating = False
'Charge les données dans un tableau variant temporaire
With Sheets("Tableau")
TabTemp = .Range(.Cells(1, 1), .Cells(10, 20)).Value
End With
'Pour chaque ligne
For F = 1 To 10
'Active ou crée la feuille cible
ActFeuille TabTemp(F, 2)
With ActiveSheet
'Détermine la première ligne vide et y copie les données
L = IIf(.Range("B1") <> "", .Range("B65536").End(xlUp).Row + 1, 1)
For C = 1 To 20
.Cells(L, C).Value = TabTemp(F, C)
Next C
End With
Next F
Application.ScreenUpdating = True
End Sub
Private Function ActFeuille(ByVal T As String) As Worksheet
'Active la feuille de destination et la crée si n'existe pas
With ThisWorkbook
On Error Resume Next
Set ActFeuille = .Sheets(T)
On Error GoTo 0
If ActFeuille Is Nothing Then
.Sheets.Add after:=.Sheets(Sheets.Count)
.ActiveSheet.Name = T
Set ActFeuille = .ActiveSheet
End If
ActFeuille.Activate
End With
End Function
Cordialement.
Didier_mDF