1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
| Sub princeipal()
'macro qui copie et colle dans un autre onglet
Range(Range("A1"), Cells(ActiveSheet.UsedRange.Rows.Count, ActiveSheet.UsedRange.Columns.Count)).Select
Selection.copy
Sheets("Feuil1").Select
ActiveSheet.Paste
Rows("1:1").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
Cells.Select
'macro wokbook permet de creer un onglet à chaque changement d'agence et d'y coller les infos
Dim Sh As Worksheet
Dim LastLig As Long, NewLig As Long, i As Long
Dim NomFeuil As String
Application.ScreenUpdating = False
With Sheets("Feuil1")
LastLig = .Cells(.Rows.Count, "O").End(xlUp).Row
For i = 2 To LastLig
NomFeuil = CStr(.Range("O" & i).Value)
If NomFeuil <> "" Then
On Error Resume Next
Set Sh = Sheets(NomFeuil)
On Error GoTo 0
If Sh Is Nothing Then
Set Sh = Worksheets.Add(After:=Worksheets(Worksheets.Count))
Sh.Name = NomFeuil
.Rows(1).copy Sh.Range("A1") 'celllule ou commence le coller des données
End If
'end If termine la boucle si plus d'agence
NewLig = Sh.Cells(Sh.Rows.Count, "A").End(xlUp).Row + 1 'le +1 insert une ligne entre chaque agence
.Rows(i).copy Sh.Range("A" & NewLig)
Set Sh = Nothing
End If
Next i
Sheets.Add After:=Sheets(Sheets.Count)
ReDim MonArray(Worksheets.Count - 4) '-4 car tu ne prends pas les 4 premières feuilles
'ni la dernière et l'array commence à l'indice 0
For i = 3 To Worksheets.Count - 1 'Parcours des feuilles
MonArray(i - 3) = Sheets(i).Name
Next i
Sheets(MonArray).Select 'sélection de l'ensemble
'macro classemnt feuil
Dim X As Variant
'Dim I As Variant
For Each X In ActiveWorkbook.Sheets
For i = 2 To ActiveWorkbook.Sheets.Count
If Sheets(i - 1).Name > Sheets(i).Name Then
Sheets(i - 1).Move After:=Sheets(i)
End If
Next
Next
End With
Sheets("Havas").Select
Sheets("Havas").Move Before:=Sheets(1)
ActiveWindow.ScrollWorkbookTabs Position:=xlLast
Sheets("Feuil1").Select
Sheets("Feuil1").Move Before:=Sheets(2)
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("Havas").Select
Rows("1:1").Select
Selection.copy
ReDim MonArray(Worksheets.Count - 4) '-4 car tu ne prends pas les 4 premières feuilles
'ni la dernière et l'array commence à l'indice 0
For i = 3 To Worksheets.Count - 1 'Parcours des feuilles
MonArray(i - 3) = Sheets(i).Name
Next i
Sheets(MonArray).Select 'sélection de l'ensemble
Rows("1:1").Select
Selection.Insert Shift:=xlDown
End Sub |
Partager