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 !
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.
PrivateSub Worksheet_SelectionChange(ByVal Target As Range)OnErrorGoTo Fin
If Target.Count >1Or Target =""ThenExitSubIfNot Intersect(Target, [A2:A1000])IsNothingThen Sheets(Application.Proper(Target)).Select
Fin:EndSub
NB: Attention, dans la création de feuille il faut certifier si la feuille n'existe pas avant de la créer sinon Erreur.
Salut wDog66 j'ai trouvé des discussions mais elles sont plus compliquées que la mienne et le code vba ne s'adapte pas, et pas assez doué pour modifier
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 AsLong, Lig AsLongWith ThisWorkbook
Set Sht =.Worksheets("liste")
dLig = Sht.Range("A"& Rows.Count).End(xlUp).Row
For Lig =2To dLig
.Worksheets.Add After:=.Worksheets(.Worksheets.Count)
ActiveSheet.Name = Sht.Range("A"& Lig)Next Lig
EndWithEndSub
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 couranteFor i =1To UBound(Tablo)' Pour tous les noms
Nom = Tablo(i,1)If FeuilleExiste(Nom)=FalseThen' Si la feuille n'existe pas
Sheets.Add(after:=Sheets(Sheets.Count)).Name = Application.Proper(Nom)' La créer et la nommerEndIfNext i
Sheets(NomCourant).Select' Retour à la feuille initiale.EndSubFunction FeuilleExiste(Nom)AsBooleanOnErrorResumeNext
FeuilleExiste = Sheets(Nom).Name <>""OnErrorGoTo0EndFunction
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
PrivateSub Worksheet_SelectionChange(ByVal Target As Range)OnErrorGoTo Fin
If Target.Count >1Or Target =""ThenExitSubIfNot Intersect(Target, [A2:A1000])IsNothingThen Sheets(Application.Proper(Target)).Select
Fin:EndSub
NB: Attention, dans la création de feuille il faut certifier si la feuille n'existe pas avant de la créer sinon Erreur.
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"EndSub
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD