XL 2016 Lien hypertexte VBA

Louu59

XLDnaute Nouveau
Bonsoir,

Je suis toute débutante en VBA.
J'ai dans l'idée de créer un classeur de recettes, j'ai déjà créé le code pour que le bouton "Ajouter recette" :
- Copie la dernière cellule remplie de ma colonne B et colle le contenu toujours sur la fiche sommaire en J9
-Créé une copie de mon template recette et qu'il renomme l'onglet crée grâce à la cellule J9

Je souhaite maintenant ajouter un lien hypertexte (dans la colonne A) vers le nouvel onglet crée (mais le nom est maintenant modifié) et que la macro descendent d'une ligne a chaque fois que je l'utilise.

Voici mon code : la ligne de code pour le lien hypertexte manque sois de l'adresse ou sous adresse mais je ne sais pas comment l'écrire

Sub NouvelleRecette()

' NouvelleRecette Macro
' Raccourci pour créer une nouvelle recette

'Pour copier le contenu de la derniere cellule utilisée colonne B

Sheets("Sommaire des recettes").Select
[B2].End(xlDown).Select
Selection.Copy
Range("J9").Select
ActiveSheet.Paste

Sheets("Template recette").Select
Sheets("Template recette").Copy After:=Sheets("Template recette")

ActiveSheet.Name = Sheets("Sommaire des recettes").Range("J9")

Sheets("Sommaire des recettes").Activate
[A2].End(xlDown).Select

ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
"", TextToDisplay:="Lire"


End Sub


Si vous avez besoin de plus de précision dites le moi ! :)
Je n'arrive pas à joindre mon fichier excel même en .zip il est trop volumineux.


Merci d'avance.
Lou


Edit :
Sub NouvelleRecette()

' NouvelleRecette Macro
' Raccourci pour créer une nouvelle recette

'Pour copier le contenu de la derniere cellule utilisée colonne B

Sheets("Sommaire des recettes").Select
[B2].End(xlDown).Select
Selection.Copy
Range("J9").Select
ActiveSheet.Paste


Sheets("Template recette").Select
Sheets("Template recette").Copy After:=Sheets(Sheets.Count)


ActiveSheet.Name = Sheets("Sommaire des recettes").Range("J9")
Range("d6").Value = Sheets("Sommaire des recettes").Range("J9")

End Sub


Sub createhyperlink()


ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
Sheets(Sheets.Count).Name & "!A1", TextToDisplay:="Lire"

End Sub

J'ai réussi a mettre en place ce que je voulais :
- Création d'un nouvel onglet qui prend le nom de la cellule ("J9") du sommaire
- Renommé l'onglet avec le nom de la recette
- avec une deuxième macro création du lien hypertexte vers l'onglet "suivant"
Cependant le lien pour le lien hypertexte j'ai encore deux petit réglage à faire et je n'y arrive pas
1/ La première ligne du tableau le lien m'affiche un message d'erreur " la référence n'est pas valide" - j'ai contourné le problème en masquant la ligne, mais j'aimerai comprendre pourquoi ça ne fonctionne pas sur cette ligne.
2/ Je suis obligé de cliquer sur la case ou je souhaite insérer mon lien, j'aimerais que le lien soit mis automatiquement sur la dernière ligne vide de la colonne A


Merci :)
 

Pièces jointes

  • Recette.png
    Recette.png
    49.3 KB · Affichages: 47
Dernière édition:
Solution
A force de tatonner j'ai trouvé la solution :

Sub NouvelleRecette()

' NouvelleRecette Macro
' Raccourci pour créer une nouvelle recette

'Pour copier le contenu de la derniere cellule utilisée colonne B

Sheets("Sommaire des recettes").Select
[B2].End(xlDown).Select
Selection.Copy
Range("J9").Select
ActiveSheet.Paste


Sheets("Template recette").Select
Sheets("Template recette").Copy After:=Sheets(Sheets.Count)


ActiveSheet.Name = Sheets("Sommaire des recettes").Range("J9")
Range("d6").Value = Sheets("Sommaire des recettes").Range("J9")

Sheets("Sommaire des recettes").Select
ligne = Range("a1048576").End(xlUp).Row
ActiveSheet.Hyperlinks.Add Anchor:=Cells(ligne, 1), Address:="", SubAddress:= _
Sheets(Sheets.Count).Name & "!A1"...

Louu59

XLDnaute Nouveau
A force de tatonner j'ai trouvé la solution :

Sub NouvelleRecette()

' NouvelleRecette Macro
' Raccourci pour créer une nouvelle recette

'Pour copier le contenu de la derniere cellule utilisée colonne B

Sheets("Sommaire des recettes").Select
[B2].End(xlDown).Select
Selection.Copy
Range("J9").Select
ActiveSheet.Paste


Sheets("Template recette").Select
Sheets("Template recette").Copy After:=Sheets(Sheets.Count)


ActiveSheet.Name = Sheets("Sommaire des recettes").Range("J9")
Range("d6").Value = Sheets("Sommaire des recettes").Range("J9")

Sheets("Sommaire des recettes").Select
ligne = Range("a1048576").End(xlUp).Row
ActiveSheet.Hyperlinks.Add Anchor:=Cells(ligne, 1), Address:="", SubAddress:= _
Sheets(Sheets.Count).Name & "!A1", TextToDisplay:="Lire"

End Sub

La première ligne le lien ne marchait pas parce que le nom de l'onglet contenait des espaces !
 

Discussions similaires

Réponses
21
Affichages
2 K

Statistiques des forums

Discussions
313 192
Messages
2 096 069
Membres
106 486
dernier inscrit
Barklem