Création automatique et dynamique d'onglets

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)

Bonne journée

en pièce jointe, un « fichier » exemple.

1 « J'aime »

Bonjour,
Voici ma participation

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

test_Creation_Auto_Onglet (1).xlsm (24,4 Ko)
Cordialement
Will

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.

Merci quand même pour cette proposition . :wink: :grinning:

1 « J'aime »

Ah je vois, il vous faut un évènement sur la feuille.
je vais voir.
Voici la 2em question :

 =FILTRE(UNIQUE(A6:A27);UNIQUE(A6:A27)<>0)

super, merci :+1:
Bon weekend

@Jacquinot_WILL-FREAD

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

1 « J'aime »

Hello pour ton petit 2

dans fichier => option => options avancé =>

scrollé jusqu’à
Capture d'écran 2024-04-30 112146
et décocher cette case

ps: à faire pour chaque feuille
Capture d’écran 2024-04-30 112337

un événement sur la feuille, c’est lorsque quelques chose change, dans ton cas la valeur d’une cellule, dans cette feuille que le code vba se lance

Je vais voir cette après midi mais je ne vous promets rien,
j’ai pas mal de travail en ce moment.

comme ceci ???

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

hello @taz067
merci pour l’info,
il est vrai que l’on néglige souvent les options déjà prédéfinies d’excel

@Jacquinot_WILL-FREAD
Pas de problème mister Will :grinning:
c’était juste pour savoir si c’était toujours d’actualité ou si je devais oublier cette option.
Merci et bon courage.

1 « J'aime »

Bonjour @Cow18
Alors,
déjà, merci d’avoir fait une proposition :+1:
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 ?

encore une fois, un grand merci

dans ma macro, ce n’était pas nécessaire de trier ces noms dans la colonne B
test_Creation_Auto_Onglet (1).xlsm (31,0 Ko)

1 « J'aime »

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.

Un grand merci a toi @Cow18 pour ta solution et merci aussi à @taz067 et @Jacquinot_WILL-FREAD pour leur participation

1 « J'aime »

Hello,
Ma dernière participation avec un évènement sur la première feuille.

test_Creation_Auto_Onglet.xlsm (34,9 Ko)

Cordialement

ouaaahhh c’est un vrai concours :grinning:
juste un petit bémol, ( :crazy_face:) les onglets ne se classent pas par ordre alphabétique puisqu’ils s’incrémentent dans l’ordre ou les noms sont entrés

Mais chapeau bas à vous tous

1 « J'aime »

ah vous voulez aussi trier :sweat_smile:,
je vais voir

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 ?

Merci

j’avais encore la colonne B dans ma macro, mieux comme çà ?
test_Creation_Auto_Onglet (1).xlsm (32,7 Ko)

1 « J'aime »