Bonjour à tous,
J'ai commencé à me former en autodidacte sur les macros depuis peu, mais j'ai réussi à les finaliser. Cependant, je cherche à créer une macro permettant de créer une feuille chaque fois que la colonne "Mis en place" est renseigné par un "Oui" sous la condition que la feuille n'existe pas déjà :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Function FeuilExiste(F As String) As Boolean On Error Resume Next FeuilExiste = Not sheets(F) Is Nothing End FunctionSuite à quoi je viens créer une forme dans la feuille "Menu" avec deux formes supplémentaires "Fichier trace" et "Analyse" en précisant leurs variables et une borne pour continuer dans le bas de feuille au lieu de s'étendre sur la droite.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 Sub test() Set ws1 = Worksheets("Sommaire scénarios") Set ws2 = Worksheets("Menu") Application.ScreenUpdating = False ws1.Activate Derncol = Range("D4").End(xlDown).Row NbAjout = 0 For I = 4 To Derncol Dim Feuil As String If ws1.Cells(I, 7) = "Oui" Then Feuil = "T_" & Mid(ws1.Cells(I, 4), 1, 29) If FeuilExiste(Feuil) Then GoTo 9999 End If sheets.Add After:=sheets(sheets.Count) sheets(sheets.Count).Select sheets(sheets.Count).Name = "T_" & Mid(ws1.Cells(I, 4), 1, 29) End if 9999 Next End sub
Jusque là, tout fonctionne, le problème arrive dès le moment où je cherche à ajouter un lien hypertexte à la forme "Fichier trace" suite à la création de la feuille correspondante ce qui me donne le code suivant :
Un lien hypertexte est bel et bien crée mais lorsque j'essaie de cliquer dessus cela me met une erreur "Référence non valide" sans pour autant me mettre de message d'erreur lors du lancement de la macro.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 ActiveSheet.Shapes.AddShape(msoShapeRoundedRectangle, y, Z, 107.325, _ 75).Select B = Selection.Name With Selection.ShapeRange .ShapeStyle = msoShapeStylePreset22 With .TextFrame2 .VerticalAnchor = msoAnchorMiddle .TextRange.Characters.Text = "Fichier trace" .TextRange.Characters(1, 12). _ ParagraphFormat.Alignment = msoAlignCenter .TextRange.Font.Size = 14 .TextRange.Font.Bold = True End With a = sheets("T_" & Mid(ws1.Cells(I, 4), 1, 29)).Name ActiveSheet.Hyperlinks.Add Anchor:=Selection.ShapeRange.Item(B), Address:="", SubAddress:=a & "!A1", TextToDisplay:="Fichier trace" End With
Auriez-vous une solution à mon problème pour que le lien se rattache correctement à la feuille créer ?
PS : Désolé si c'est peu compréhensible mais j'ai essayé de faire au mieux dans la présentation du code (je n'ai pas trouvé comment l'insérer autrement) et également si ce code vous paraît catastrophique
En vous remerciant par avance,
Bonne journée à vous
Partager