Bonjour à tous,
Comme indiqué dans le titre, je souhaiterais, si c’est possible, créer des onglets automatiquement et dynamiquement, en fonction d’une liste triée sans doublons.
la solution peut être par vba si pas le choix. Par contre je ne connais rien au vba.
Merci à vous. test_Creation_Auto_Onglet.xlsm (19,2 Ko)
Sub creation()
Dim cellule As Range
Range(Range("B6"), Range("B6").End(xlDown)).Name = "Liste"
For Each cellule In Range("Liste")
Sheets.Add , Sheets(Sheets.Count)
ActiveSheet.Name = cellule
Next
Sheets(1).Select
End Sub
bonjour @Jacquinot_WILL-FREAD
j’ai déjà tenté cette solution qui était proposée dans un fil, mais ca ne correspond pas tout a fait à ce que je souhaite
Qui plus est, une fois que l’on clique sur le bouton, on ne peut plus rajouter d’autres onglets.
Bonjour Will.
juste pour savoir si vous aviez eu un peu de temps pour voir si mon problème d’ajout automatique et dynamique était réalisable.
vous parliez d’évènement sur la feuille… je n’y connais rien en programmation et n’ai pas trouvé de sujets abordant ce thème.
Cordialement.
Jp
Sub Creation()
Dim aListe, i, sh
aListe = Application.Sort(Range(Range("B6"), Range("B" & Rows.Count).End(xlUp)).Value) 'noms de feuilles triés
For i = 1 To UBound(aListe)
If Len(aListe(i, 1)) > 0 Then
On Error Resume Next
Set sh = Nothing
Set sh = Worksheets(CStr(aListe(i, 1))) 'cette feuille existe déjà ?
On Error GoTo 0
If sh Is Nothing Then 'NON !!!
If i = 1 Then Set sh0 = Sheets("Feuil1") Else Set sh0 = Sheets(CStr(aListe(i - 1, 1))) 'feuille précédente
Sheets.Add(after:=sh0).Name = CStr(aListe(i, 1)) 'ajouter et nommer feuille après feuille précédente
End If
End If
Next
Application.Goto Sheets("Feuil1").Range("A1")
End Sub
@Jacquinot_WILL-FREAD
Pas de problème mister Will
c’était juste pour savoir si c’était toujours d’actualité ou si je devais oublier cette option.
Merci et bon courage.
Bonjour @Cow18
Alors,
déjà, merci d’avoir fait une proposition
comme déjà dit plus avant dans ce fil, je ne connais rien à la programmation. Serait ce trop de te demander ou je dois placer ce code et brièvement, comment il fonctionne ?
ok, je vois.
en fait je dois obligatoirement passer par le bouton pour actualiser les onglets.
Cela ne peut pas être possible automatiquement après avoir ajouté un nom dans la liste de la feuille 1 ?
Petit thumb up pour le classement alphabétique des onglets
Après reflexion, c’est pas plus mal de passer par un bouton pour actualiser les onglets.
le fait de ne pas trier les noms avec ta macro est aussi un +
Je vais donc valider cette solution qui me convient.
ouaaahhh c’est un vrai concours
juste un petit bémol, ( ) les onglets ne se classent pas par ordre alphabétique puisqu’ils s’incrémentent dans l’ordre ou les noms sont entrés
Re
une petite question …
Il faut au minimum deux Noms ?
Car si je clique sur le bouton, j’ai un message d’erreur "Erreur Exécution ‹ 9 › "
en cliquant sur débogage, la ligne suivante est surlignée If Len(aListe(i, 1)) > 0 Then
y a t-il quelque chose a changer ici pour éviter le message d’erreur ?