XL 2021 Création onglets

  • Initiateur de la discussion Initiateur de la discussion bobafric
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

bobafric

XLDnaute Occasionnel
Salut tout le monde, j'ai une grande liste de noms dans la colonne A et je voudrai créer automatiquement à partir de cette liste les onglets correspondant à chaque nom.
 

Pièces jointes

Solution
Re,
Il suffit dans la feuille Liste de rajouter :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Fin
    If Target.Count > 1 Or Target = "" Then Exit Sub
    If Not Intersect(Target, [A2:A1000]) Is Nothing Then Sheets(Application.Proper(Target)).Select
Fin:
End Sub
NB: Attention, dans la création de feuille il faut certifier si la feuille n'existe pas avant de la créer sinon Erreur.
Re,

Le sujet a déjà été traité c'est certain, mais voici un code basique qui devrait faire l'affaire
VB:
Sub CréationOnglets()
  Dim Sht As Worksheet
  Dim dLig As Long, Lig As Long
  With ThisWorkbook
    Set Sht = .Worksheets("liste")
    dLig = Sht.Range("A" & Rows.Count).End(xlUp).Row
    For Lig = 2 To dLig
    .Worksheets.Add After:=.Worksheets(.Worksheets.Count)
    ActiveSheet.Name = Sht.Range("A" & Lig)
    Next Lig
  End With
End Sub
 
Bonjour Bobafric, wDog,
Un essai en PJ avec :
VB:
Sub CreerOnglets()
    Application.ScreenUpdating = False                      ' Ecran figé
    Tablo = Range("A2:A" & Range("A65500").End(xlUp).Row)   ' Tous les noms dans un tableau
    NomCourant = ActiveSheet.Name                           ' Mémorise la feuille courante
    For i = 1 To UBound(Tablo)                              ' Pour tous les noms
        Nom = Tablo(i, 1)
        If FeuilleExiste(Nom) = False Then                  ' Si la feuille n'existe pas
            Sheets.Add(after:=Sheets(Sheets.Count)).Name = Application.Proper(Nom)  ' La créer et la nommer
        End If
    Next i
    Sheets(NomCourant).Select                               ' Retour à la feuille initiale.
End Sub
Function FeuilleExiste(Nom) As Boolean
  On Error Resume Next
  FeuilleExiste = Sheets(Nom).Name <> ""
  On Error GoTo 0
End Function
 

Pièces jointes

Excusez moi j'ai oublié quelque chose, merci Sylvanu de te joindre à nous c'est sympa.
Au fait j'ai oublié de parler des liens pour les onglets et les noms car je vais avoir plus de cinquante noms et difficile de chercher les onglets. Merci encore wDog et Sylvanu
 
Re,
Il suffit dans la feuille Liste de rajouter :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Fin
    If Target.Count > 1 Or Target = "" Then Exit Sub
    If Not Intersect(Target, [A2:A1000]) Is Nothing Then Sheets(Application.Proper(Target)).Select
Fin:
End Sub
NB: Attention, dans la création de feuille il faut certifier si la feuille n'existe pas avant de la créer sinon Erreur.
 

Pièces jointes

Re,
car je vais avoir plus de cinquante noms et difficile de chercher les onglets.
Ce sera aussi difficile de revenir à la feuille initiale Liste.
En PJ V3, sur chaque feuille est inséré un lien hypertexte en A1 qui renvoie directement sur la feuille Liste.
Evidemment cela suppose que sur les feuilles la cellule A1 soit Vide, sinon on peut changer la cellule ou mettre le lien.
VB:
Sub Lien(F)
   Sheets(F).[A1].Select
   ActiveSheet.Hyperlinks.Add _
   Anchor:=Selection, Address:="", SubAddress:= _
   "Liste!A1", TextToDisplay:="Retour"
End Sub
 

Pièces jointes

Notre forum d’entraide est 100 % gratuit et le restera.
Aucune formation payante, aucun fichier à acheter, rien à vendre. Mais comme tout site, nous devons couvrir nos frais pour continuer à vous accompagner.
Soutenez-nous en souscrivant à un compte membre : c’est rapide, vous choisissez simplement votre niveau de soutien et le tour est joué.

Je soutiens la communauté et j’accède à mon compte membre

Discussions similaires

  • Question Question
Réponses
12
Affichages
500
Réponses
87
Affichages
2 K
Retour