Création automatique de lien sur nouvel onglet

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 !

Andreleca

XLDnaute Nouveau
Bonjour à vous tous !!
Voir le fichier joint.
Je suis partie d'un modèle sur ce forum et l'a adapté a mes besoins, merci 🙂
Il me reste 2 soucis
1)Lorsque je créé un nouveau dossier «client» est il possible que le nouvel onglet se place juste après l'onglet sommaire ?
2)Lorsque je créé un nouveau dossier «client» est il possible que les liens apparaissant à l'onglet «sommaire» ligne b6 à h8 se fasse automatiquement avec les onglets correspondant?
Merci d'avance😉
 

Pièces jointes

Re : Création automatique de lien sur nouvel onglet

Bonjour,

essaye ceci :
Code:
Option Explicit
Sub test()
Dim ws As Worksheet, n As String
n = InputBox("Nom client ?")
If n = "" Then Exit Sub
Set ws = Worksheets.Add(after:=Sheets("Sommaire"))
ws.Name = n
With Sheets("Sommaire")
    .Hyperlinks.Add Anchor:=.Range("A65536").End(xlUp)(2), Address:="", _
        SubAddress:=ws.Name & "!A1", TextToDisplay:=ws.Name
End With
End Sub
bonne journée
@+
 
Re : Création automatique de lien sur nouvel onglet

Merci Pierrot,
Cela répond à mon premier soucis😀
Concernant mon deuxième soucis, j'aimerais avoir le plus automatiquement possible des lien unissant le nouvel onglet crée avec l'onglet sommaire. Ex Sur l'onglet sommaire les liens apparaissant de B6 à H8.
Merci encore de votre aide🙂🙂
 
Re : Création automatique de lien sur nouvel onglet

Bonjour,

c'est bien ce que le code proposé fait, un lien hypertexte de ton onglet sommaire vers la nouvelle feuille créée... Et ce sur la feuille sommaire

bonne journée
@+
 
Dernière édition:
Re : Création automatique de lien sur nouvel onglet

Pas tout à fait 😕
Si l'on regarde à l'onglet sommaire cellule B7 à H7, il y a un lien avec l'onglet DDD. EX Onglet sommaire à B7 est inscrit =ddd!a$3. Ce que je veux c'est qu'a chaque fois que je créé un nouvel onglet (EX qqq) et bien à la cellule B9 ( jusqu'a H9) de l'onglet sommaire le lien se fasse automatiquement avec la cellule a3 (F3,G3,H3,K3 et M3) de l'onglet qqq.
Merci 🙂🙂
 
Re : Création automatique de lien sur nouvel onglet

Re

regarde ceci, je te laisse compléter les autres cellules...

Code:
Option Explicit
Sub test()
Dim ws As Worksheet, n As String
n = InputBox("Nom client ?")
If n = "" Then Exit Sub
Set ws = Worksheets.Add(after:=Sheets("Sommaire"))
ws.Name = n
With Sheets("Sommaire")
    .Hyperlinks.Add Anchor:=.Range("A65536").End(xlUp)(2), Address:="", _
        SubAddress:=ws.Name & "!A1", TextToDisplay:=ws.Name
    .Range("B65536").End(xlUp)(2).FormulaLocal = "=" & n & "!A3"
    'etc...
End With
End Sub

bonne soirée
@+
 
Re : Création automatique de lien sur nouvel onglet

Merci Pierrot,
La seule chose qui manque est que dans ma version originale le format de la nouvelle feuille créée provenait d'une copie de la feuille «Vierge». Depuis hier j'essaie de fusionner les 2 routinnes mais rien fonctionne
Ancienne routine
Sub NewClient()
Dim MaVar As String, Derlig As Long
MaVar = InputBox("Nom du client", "Nouveau client")
If Len(MaVar) = 0 Then Exit Sub
'Sheets("Vierge").Visible = True
Sheets("Vierge").Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = MaVar
Sheets("Sommaire").Activate
'Sheets("Vierge").Visible = False
' Créer le nouveau lien hypertexte
Derlig = Sheets("Sommaire").Range("A" & Application.Rows.Count).End(xlUp).Row + 1
With Sheets("Sommaire")
.Hyperlinks.Add Anchor:=.Range("A" & Derlig), Address:="", SubAddress:= _
"'" & MaVar & "'!A1", TextToDisplay:=MaVar
End With
End Sub

Est il possible d'intégrer la section qui permet de copier la feuille vierge sur la nouvelle feuille créée, dans ta routine suggérer hier.
Merci😱😱
 
Re : Création automatique de lien sur nouvel onglet

Bonjour,

essaye ceci, mais le mieux eut été de le dire tout de suite.....
Code:
Option Explicit
Sub test()
Dim ws As Worksheet, n As String
n = InputBox("Nom client ?")
If n = "" Then Exit Sub
Sheets("Vierge").Copy after:=Sheets("Sommaire")
Set ws = Sheets("Sommaire").Next
With ws
    .Visible = True
    .Name = n
End With
With Sheets("Sommaire")
    .Hyperlinks.Add Anchor:=.Range("A65536").End(xlUp)(2), Address:="", _
        SubAddress:=ws.Name & "!A1", TextToDisplay:=ws.Name
    .Range("B65536").End(xlUp)(2).FormulaLocal = "=" & n & "!A3"
    'etc...
End With
End Sub

bonne soirée
@+
 
Re : Création automatique de lien sur nouvel onglet

Merci encore Pierrot,
J'ai un autre souci😎 ! En lien avec la routine ci haut, lorsque j'entre un nom de nouveau client qui comporte un trat d'union ou un espace (ex St-Gilles ou Gloire du matin) il le cherche comme un nom de fichier. En fait dans la formule il ne met pas les «'»

Merci pour votre aide 😉😀
 
Re : Création automatique de lien sur nouvel onglet

Bonsoir,

essaye en modifiant comme suit :
Code:
Option Explicit
Sub test()
Dim ws As Worksheet, n As String
n = InputBox("Nom client ?")
If n = "" Then Exit Sub
Sheets("Vierge").Copy after:=Sheets("Sommaire")
Set ws = Sheets("Sommaire").Next
With ws
    .Visible = True
    .Name = n
End With
With Sheets("Sommaire")
    .Hyperlinks.Add Anchor:=.Range("A65536").End(xlUp)(2), Address:="", _
        SubAddress:=ws.Name & "!A1", TextToDisplay:=ws.Name
    .Range("B65536").End(xlUp)(2).FormulaLocal = "='" & n & "'!A3"
    'etc...
End With
End Sub
bonne soirée
@+
 
Re : Création automatique de lien sur nouvel onglet

Merci Pierrot,
Tu es quasiment mon consultant privé 😉
Voici la routine finale
Sub test()
Dim ws As Worksheet, n As String
n = InputBox("Nom client ?")
If n = "" Then Exit Sub
Sheets("Vierge").Copy after:=Sheets("Sommaire")
Set ws = Sheets("Sommaire").Next
With ws
.Visible = True
.Name = n
End With
With Sheets("Sommaire")
.Hyperlinks.Add Anchor:=.Range("A65536").End(xlUp)(2), Address:="", _
SubAddress:=ws.Name & "!A1", TextToDisplay:=ws.Name
.Range("B65536").End(xlUp)(2).FormulaLocal = "='" & n & "'!A3"
.Range("c65536").End(xlUp)(2).FormulaLocal = "='" & n & "'!b3"
.Range("d65536").End(xlUp)(2).FormulaLocal = "='" & n & "'!f3"
.Range("e65536").End(xlUp)(2).FormulaLocal = "='" & n & "'!o3"
.Range("g65536").End(xlUp)(2).FormulaLocal = "='" & n & "'!h3"
.Range("h65536").End(xlUp)(2).FormulaLocal = "='" & n & "'!i3"
.Range("i65536").End(xlUp)(2).FormulaLocal = "='" & n & "'!j3"
.Range("k65536").End(xlUp)(2).FormulaLocal = "='" & n & "'!l3"
.Range("l65536").End(xlUp)(2).FormulaLocal = "='" & n & "'!3"
.Range("m65536").End(xlUp)(2).FormulaLocal = "='" & n & "'!p3"
.Range("o65536").End(xlUp)(2).FormulaLocal = "='" & n & "'!q3"
End With
End Sub
Ce que j'aimerais maintenant c'est
1) Protéger la feuille sommaire
Pour ce faire j'inscrit au début de la routine
ActiveSheet.Unprotect -> puisque je présume qu'elle était protégé
et à quelle que part la formule suivante
ActiveSheet("Sommaire").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFiltering:=True

Mais voilà je ne sait a quelle endroit dans la routine placer cette dernière formule (entre quelle ligne) -> il protège le nouvel onglet crée au lieu du sommaire
2)Créer une formule automatique
Sur l'onglet sommaire on insère automatiquement un lien avec le nouvel onglet crée (ex. .Range("B65536").End(xlUp)(2).FormulaLocal = "='" & n & "'!A3" -> Idem pour la cellule B-C-D-E-G.Maintenant j'aimerais à la cellule F '=SI(D10="Fermé";D10;SI(E10<D10;E10;D10)). J'ai essayer de remplacer D10 par ("d65536").End(xlUp)(2). -> mais cela ne fonctionne pas. Il ne faut pas oublier que cette formule se crée à l'ouverture du nouvel onglet, donc c'est la ligne 10, tantôt 11 et ainsi de suite 😱

J'espère être assez clair
Merci encore pour ta précieuse aide 🙂🙂
 
Re : Création automatique de lien sur nouvel onglet

Bonjour,

pour ton problème de protection, remplace :
Code:
ActiveSheet("Sommaire").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFiltering:=True

par :
Code:
[B][COLOR="Blue"]Sheets[/COLOR][/B]("Sommaire").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFiltering:=True

pour ton problème de formule, les cellules (D10 etc) sont sur quelle feuille ? si ce n'est pas la feuille sur laquelle tu mets la formule, il me semble qu'il y a lieu de la préciser...

bonne journée
@+
 
Dernière édition:
Re : Création automatique de lien sur nouvel onglet

Je veux inclure dans la routine précédante une formule à l'onglet sommaire qui utilise des données apparaissant sur l'onglet sommaire mais provenant du nouvel onglet (ex cellules.Range("B65536").End(xlUp)(2).FormulaLocal = "='" & n & "'!A3" et .Range("c65536").End(xlUp)(2).FormulaLocal = "='" & n & "'!b3" et les autres)
. Bien entendu je peux ecrire cette formule d'avance directement sur les cellule (ex de f10 à f1000) mais je préférerait que cette formule se fasse au fur et a mesure lorsque je créé une nouvelle feuille.
Merci
 
Re : Création automatique de lien sur nouvel onglet

Re,

pas tout compris... si l'on prends les cellules de la colonne F de la feuille sommaire, elles se réfèrent à la nouvelle feuille créée et ce à la ligne 3....

Utilise les balises code quand tu en mets un dans la discussion, icone #, sinon ce n'est pas lisible...

bon après midi
@+
 
Re : Création automatique de lien sur nouvel onglet

Autre petit souci,
Voici la formule
PHP:
Sub test()
ActiveSheet.Unprotect
Dim ws As Worksheet, n As String
n = InputBox("Nom client ?")
If n = "" Then Exit Sub
Sheets("Vierge").Copy after:=Sheets("Sommaire")
Set ws = Sheets("Sommaire").Next
With ws
    .Visible = True
    .Name = n
End With
With Sheets("Sommaire")
    .Hyperlinks.Add Anchor:=.Range("A65536").End(xlUp)(2), Address:="", _
        SubAddress:=ws.Name & "!A1", TextToDisplay:=ws.Name
    .Range("B65536").End(xlUp)(2).FormulaLocal = "='" & n & "'!A6"
    .Range("c65536").End(xlUp)(2).FormulaLocal = "='" & n & "'!b6"
    .Range("d65536").End(xlUp)(2).FormulaLocal = "='" & n & "'!f6"
    .Range("e65536").End(xlUp)(2).FormulaLocal = "='" & n & "'!o6"
    .Range("g65536").End(xlUp)(2).FormulaLocal = "='" & n & "'!h6"
    .Range("h65536").End(xlUp)(2).FormulaLocal = "='" & n & "'!i6"
    .Range("i65536").End(xlUp)(2).FormulaLocal = "='" & n & "'!j6"
    .Range("k65536").End(xlUp)(2).FormulaLocal = "='" & n & "'!l6"
    .Range("l65536").End(xlUp)(2).FormulaLocal = "='" & n & "'!n6"
    .Range("m65536").End(xlUp)(2).FormulaLocal = "='" & n & "'!p6"
    .Range("o65536").End(xlUp)(2).FormulaLocal = "='" & n & "'!q6"
End With
Sheets("Sommaire").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFiltering:=True
End Sub
Cette formule me permet, entre autre de créer un lien hypertexte à la feuille sommaire colonne «A» avec la nouveau onglet créé. Le lien fonctionne bien si le nom du nouvel onglet est un mot simple (ex. Tigre ), par contre si le nom du nouvel onglet est un mot composé (ex. Val des neiges, Trois-Pistoles) il m'apparait «référence non valide». En fait lorsque je refait manuellement les liens hypertexte je constate qu'il met des «'» devant et à la fin des mots composés.
Merci encore de votre aide
 
- 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

Discussions similaires

Retour