Créer un Hyperlien automatique et récupérer la valeur

Bonjour

J'ai besoin d'aide , je trouve beaucoup d'information sur les hyperliens mais j'avoue que je m'y perds un peu, merci de m'aiguiller.

Ce que je cherche à obtenir

Dans la colonne B, j'ai un nombre qui représente un numéro de billet, je voudrais par vba que dans la colonne A se créer automatiquement un hyperlien (qu'on pourrait simplement nommer "Lien"), avec comme valeur celle en B, vers un autre onglet de mon classeur. Et ce pour toute les lignes ou B<>""

Une fois créer, l'hyperlien servirait à ouvrir l'onglet "facture" et définirait la valeur de $B$1 par sa propre valeur

Merci

Bonjour

je penses que beaucoup de personnes, comme moi, n'avons pas compris la demande... c'est sans doute pour cela qu'il n'y a pas eut de réponse à ta question...

merci de fournir un fichier et d'expliquer avec ce fichier ce que tu souhaite faire...

Fred

Merci fred2406

Je ne peux pas joindre mon fichier en raison de l'information sensible qui s'y trouve

Je vais essayer d'être plus clair

Dans l'onglet "Facturation par billet" la colonne B contient des numéros, je voudrais que ces numéros, automatiquement, soient des hyperliens vers l'onglet "Facture".

La particularité est que chaque hyperlien défini la valeur de la cellule $B$1 dans l'onglet "Facture"par sa propre valeur

Exemple si je clique sur l'hyperlien créé en B1 de l'onglet "Facturation par billet" dont le nombre inscrit est 123456, je serais dirigé vers l'onglet "Facture" et la valeur inscrite en $B$1 de "Facture" serait 123456.

Et ainsi de suite pour toutes les cellules de la colonne B de l'onglet "Facturation par billet"

Bonne journée

re Bonjour

ci dessous une macro qui permet de faire les hyperliens.. il faut que la feuille "facturation par billet soit active au moment de l'execution du code... donc mettre un bouton sur cette feuille et lui dire d’exécuter cette macro

Sub creation_hyperlien()
ActiveSheet.Hyperlinks.Add Anchor:=Range("B2:A" & Range("B" & Rows.Count).End(xlUp).Row), Address:="",  subAddress:="Facture!B1"

End Sub

Par contre je n'arrive pas a récupérer la ligne a partir de laquelle le lien a été cliquer... malgré tous mes essais....

donc impossible de mettre a jour la contenu de la cellule B1 de la feuille facture...

peut-être que quelqu'un aura une idée....

Fred

Bonjour fred2406

Il n'a pas vraiment de plus-value avec la solution proposée, soit d'avoir un bouton de commande qui ouvre l'onglet "Facture". Plutôt cliquer sur l'onglet pour le même résultat.

Par contre ton aide est apprécié, je vais partir de ton code afin de trouver une solution, merci beaucoup.

Bon j'ai trouvé quelque chose... cela ne me plait pas car cela fait appel des Activate... mais cela a le mérite de fonctionner...

code a placer dans la feuille Facturation par billet (pas dans un module....)

Private Sub Worksheet_FollowHyperlink(ByVal h As Hyperlink)

Application.ScreenUpdating = False

Sheets("Facturation par billet").Activate

Sheets("Facture").[B1] = Sheets("Facturation par billet").Range(ActiveCell.Address)

Sheets("Facture").Activate

End Sub

j'aurais pensé qu'on pouvait faire quelque chose de plus propre mais pas trouvé...


EDIT :

bon un truc un peu mieux...

Private Sub Worksheet_FollowHyperlink(ByVal h As Hyperlink)
Dim shd As Worksheet
Application.ScreenUpdating = False
Set shd = ActiveSheet
ActiveSheet.Previous.Select
shd.[B1] = ActiveSheet.Range(ActiveCell.Address)
shd.Select
End Sub

Fred

Merci de ton aide fred 2406

L'hyperlien fonctionne bien avec ce code que j'utilise pour une autre feuille (il retourne toutes les lignes qui ont la même valeur en "A" selon la valeur de l'hyperlien créé, voir "Facturation détaillé" pour la feuille ciblée).

Lui indiquer la nouvelle feuille est fonctionnel.

Private Sub Worksheet_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
    Sheets("Facture").Range("$A$2:$N$20000").AutoFilter Field:=1, Criteria1:=Target.Range.Value

End Sub

Mais comment créer les hyperliens de façon automatique dans la celle B de la feuille "Facturation par billet" sans avoir à les faire un par un (car les données de la colonne B sont dynamiques et changent)

Idéalement si on pourrait créer dans la colonne A un hyperlien qu'on apppelerait "lien" et qui aurait la valeur de B. Si non créer un hyperlien directement dans la colonne B.

Merci

Bonjour,

Je pense que ça ne te prendrait pas des masses de temps de faire un fichier exemple avec quelques lignes qui ressemblent à ce que tu as, et à ce que tu veux. Et tout le monde gagnerait au final du temps, toi y compris.

Avec des données bidon pour respecter l'anonymat, bien évidemment.

Parce que là, je ne suis pas sûr que ce soit très clair pour moi.

On va essayé de reprendre... car j'ai pas tout compris...

d'ailleurs je ne comprends pas ce que fait ta ligne de code..

tu veux que lien soit fait dans la colonne A .... et tu veux que cela soit marqué "lien" et pas le numéro de la colonne B ?

c'est ça :

excelpratique

alors voici le code :

Sub creation_hyperlien()
Dim i%

For i = 2 To Range("B" & Rows.Count).End(xlUp).Row
    ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, "A"), Address:="", TextToDisplay:="lien", SubAddress:="Facture!B1"
Next
End Sub

le code fournit pourrait être executé une fois pour mettre au point toutes les lignes... et ensuite on pourrais faire la création d'un lien lorsque l'on quitte une cellule de la colonne B ET qu'il n'y a pas de lien en cellule A

donc faire une macro événementiel

dis moi si cela peut convenir

Fred

Bonjour

Merci de votre aide

J'ai adapté le code et c'est fonctionnel, l'hyperlien ouvre l'onglet "Facture" et défini la valeur en $B$1

Private Sub Worksheet_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
    Sheets("Facture").Range("$B$1") = Target.Range.Value

End Sub

Il me reste à ce que de façon automatique, les cellules de la colonne B de la feuille "Facturation par billet" soient des hyperliens

Merci

Bon ci joint une proposition de création d'un lien hypertexte dynamique...

lorsqu'une nouvelle ligne est remplie dans la colonne B

Fred

12classeur1.xlsm (20.53 Ko)

Bonjour

fred2426, j'ai adapté ton ton et c'est fonctionnel merci

Je créer l'hyperlien

Sub Worksheet_creation_hyperlien()
Dim ligne As Integer
For ligne = 3 To Range("B" & Rows.Count).End(xlUp).Row
        Range("B" & ligne).Select
        Selection.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="Facture!B1"
Next
End Sub

Et défini la valeur en B1 de la feuille que l'hyperlien ouvre

Private Sub Worksheet_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
    Sheets("Facture").Range("$B$2") = Target.Range.Value
End Sub

Est-ce que les hyperliens peuvent être créer de façon automatique genre à l'ouverture plutôt que de devoir exécuter la macro manuellement

Merci de ton aide

merci beaucoup fred2426 des efforts que tu y met

Mon souci avec le code de ton fichier (merci) est que les données de la feuille Facturation par billet sont générées dynamiquement par une autre feuille et non ajouter manuellement.

Au plaisir!

Tout est maintenant fonctionnelle et réponds à mes attentes

Private Sub Worksheet_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
    Sheets("Facture").Range("$B$2") = Target.Range.Value
End Sub

Private Sub Worksheet_Open()
Dim ligne As Integer
For ligne = 3 To Range("B" & Rows.Count).End(xlUp).Row
        Range("B" & ligne).Select
        Selection.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="Facture!B1"
Next
End Sub

Merci beaucoup de ton aide fred2426

Sujet résolu

Tant mieux...

Bonne continuation

Fred

Rechercher des sujets similaires à "creer hyperlien automatique recuperer valeur"