Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
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.
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.
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 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
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
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
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.
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
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