Bonjour le forum,
J'ai créer une macro qui crée des onglets en fonction d'une plage de cellule. Pour chaque cellule renseignée dans la colonne A, un onglet est crée. Ensuite la même macro contrôle si chaque onglet correspond bien à une cellule de la plage, et si non, elle le supprime.
La macro fonctionne (elle n'est peut-être pas optimisé ou esthétique), mais j'aimerais que les onglets soient ajoutés en dernière position. Et je ne vois pas ou mettre le After:=Sheets(Sheets.Count).
J'ai créer une macro qui crée des onglets en fonction d'une plage de cellule. Pour chaque cellule renseignée dans la colonne A, un onglet est crée. Ensuite la même macro contrôle si chaque onglet correspond bien à une cellule de la plage, et si non, elle le supprime.
La macro fonctionne (elle n'est peut-être pas optimisé ou esthétique), mais j'aimerais que les onglets soient ajoutés en dernière position. Et je ne vois pas ou mettre le After:=Sheets(Sheets.Count).
VB:
Sub MAJ_Onglets()
Dim Sh As Worksheet
Dim Ws As Worksheet
Dim LastLig As Long
Dim i As Integer
Dim j As Integer
j = 2
For Each Ws In Application.Worksheets
If Ws.Name = Sheets("Feuil1").Range("A" & j) Then
j = j + 1
Else
Application.DisplayAlerts = False
If Ws.Name <> "Feuil1" Then
Ws.Delete
j = j + 1
End If
Application.DisplayAlerts = True
End If
Next Ws
With Sheets("Feuil1")
LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
For i = LastLig To 2 Step -1
On Error Resume Next
Set Sh = Sheets(CStr(.Range("A" & i).Value))
On Error GoTo 0
If Sh Is Nothing Then
ThisWorkbook.Sheets.Add.Name = CStr(.Range("A" & i).Value)
Else
Set Sh = Nothing
End If
Next i
End With
End Sub