Sub Repartition_data() ' ' Repartition_data Macro ' 'Mise en page fichier brut Columns("A:A").Select Selection.TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _ FieldInfo:=Array(Array(0, 1), Array(4, 1), Array(8, 5), Array(16, 1), Array(19, 1), _ Array(22, 1), Array(26, 1), Array(30, 1)), TrailingMinusNumbers:=True Selection.Delete Shift:=xlToLeft Columns("C:C").Select Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove Columns("F:F").Select Selection.Cut Destination:=Columns("C:C") Columns("F:F").Select Selection.Delete Shift:=xlToLeft Rows("1:1").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Windows("PERSONAL.XLSB").Activate Windows("Transfert Programme de vol.xls").Activate ' Création onglets Dim sht As Worksheet, Nf As String, i As Integer i = 2 With Worksheets("Transfert Programme de vol") 'le nom de la feuille contienne les données Do Until IsEmpty(.Cells(i, 1)) On Error Resume Next Nf = Join(Split(.Cells(i, 2), "/"), "-") 'obtenir la date en excluant le separateur / Set sht = Sheets(Nf) On Error GoTo 0 If sht Is Nothing Then Sheets.Add(after:=Worksheets(Worksheets.Count)) _ .Name = Nf 'créer la feuille et donne la le nom de la date de la cellule active Sheets(Nf).Cells(Rows.Count, 1).End(xlUp)(2).Resize(1, 100) = _ .Range("A" & Cells(i, 2).Row _ & ":AX" & .Cells(i, 2).Row).Value ' copie les données i = i + 1 Set sht = Nothing Application.Run "PERSONAL.XLSB!Mise_en_page" Loop End With Sheets("Transfert Programme de vol").Select ActiveWindow.SelectedSheets.Visible = False ' Classer onglets Dim Boucle As Integer, Compteur As Integer For Boucle = 1 To Sheets.Count If Sheets(Boucle).Visible = true then For Compteur = 1 To (Boucle - 1) If Sheets(Compteur).Visible = true then If (UCase(Sheets(Boucle).Name) < UCase(Sheets(Compteur).Name)) Then Sheets(Boucle).Move before:=Sheets(Compteur) Exit For End If EndIf Next Compteur EndIf Next Boucle End Sub