'Ti http://www.veriti.net
'février 2008
Option Explicit
Private Sub CreeFeuille(ByVal Groupe$, Plage As Range)
Dim Cel As Range, Dest As Range, Ws As Worksheet
On Error Resume Next
With ThisWorkbook
Set Ws = .Worksheets(Groupe)
If Not Ws Is Nothing Then Exit Sub
Set Ws = .Worksheets.Add(, .Worksheets(.Worksheets.Count))
End With
With Ws
.Name = Groupe
.Range("A1:D1") = Array("Numéro", "Groupe", "Somme", "Rachat")
Set Dest = .Range("A2")
For Each Cel In Plage
If Cel = Groupe Then
Cel(1, 0).Resize(, 4).Copy Dest
Set Dest = Dest.Offset(1, 0)
End If
Next Cel
End With
End Sub
Sub CreeDEC()
Dim Ws As Worksheet, Plage As Range, Cel As Range
Dim Col As Collection, Groupe
On Error Resume Next
Application.ScreenUpdating = False
Set Ws = ThisWorkbook.Worksheets("Data")
With Ws
Set Plage = .Range("B2", .Range("B65536").End(xlUp))
End With
Set Col = New Collection
For Each Cel In Plage
Col.Add Cel, CStr(Cel)
Next Cel
For Each Groupe In Col
CreeFeuille Groupe, Plage
Next Groupe
Ws.Activate
Application.ScreenUpdating = True
End Sub