Récupérer la valeur d'une textbox pour création d'un lien hypertexte

Alghorn

XLDnaute Junior
Bonjour,
Je me tourne à nouveau vers les pros de ce forum :p

J'ai créé une textbox qui demande de saisir un N°
J'aimerai pouvoir récuperer ce N° afin de créer un lien hypertexte (celui ci change en fonction du N°.

Concernant la création de la textbox : OK
Concernant la création de la macro : OK sur le principe.

Par contre je ne sais pas comment récuperer ce N° pour l'insérer.
Je pense que je dois créer une variable dans ma macro (?) mais quelle ligne de code je dois insérer dans ma Textbox ?

Si je ne suis pas assez explicite n'hésitez pas à me le dire :eek:

Merci d'avance à tous
 

James007

XLDnaute Barbatruc
Re : Récupérer la valeur d'une textbox pour création d'un lien hypertexte

Bonjour,

A priori, ton lien hypertexte se présente sous forme d'un string ...

Donc avec une simple concaténation ( & ) cela semble facilement réalisable ...

A +
:)
 

James007

XLDnaute Barbatruc
Re : Récupérer la valeur d'une textbox pour création d'un lien hypertexte

Re,

Si tu as des difficultés, n'hésites pas à poster ton code ...

Ce n'est pas vraiment celui de ta Texbox qui importe, mais celui qui construit le nom du lien hypertexte ... dans lequel il faut insérer: & TextBox1.Value

A +
:)
 

Alghorn

XLDnaute Junior
Re : Récupérer la valeur d'une textbox pour création d'un lien hypertexte

Re-
J'avais posté une réponse mais il semblerai que celle ci ai buggée :mad:
J'ai effectivement un pb avec la synthaxe de ma macro.
En fait le contenu de ma textbox est inserer dans temporairement dans une cellule (je m'ocupperai de ça après !).
C'est la rédaction de la macro qui me pose souci. Voici ce que j'ai pour le moment

Range("AD7").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="http://aaaaa/private/incident/viewdetail/bbbbb/&AG7&",
TextToDisplay:="oui"
End Sub

Mais cela ne marche pas.... et j'ai tenté d'autres synthaxes sans succès.
 

Gorfael

XLDnaute Barbatruc
Re : Récupérer la valeur d'une textbox pour création d'un lien hypertexte

Salut Alghorn et le forum
J'avais posté une réponse mais il semblerai que celle ci ai buggée :mad:
Youpi ! Je ne suis pas le seul à qui ça arrive !
Code:
Range("AD7").Select
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="http://aaaaa/private/incident/viewdetail/bbbbb/&AG7&",
        TextToDisplay:="oui"
End Sub
Par principe, met tout le code, pas juste la partie que tu crois en erreur.
Donner un code erroné sans ce qu'il est supposé faire ? Avec l'aide d'un magicien, ou d'un devin peut-être...
Code:
    ActiveSheet.Hyperlinks.Add Anchor:=Range("AD7"), _
                Address:="http://aaaaa/private/incident/viewdetail.xls", _
                SubAddress:="bbbbb!AD50", _
                TextToDisplay:="oui"
Avec ce code, je crée un lien hypertexte de nom oui qui m'emmène sur la cellule AD50 de l'onglet bbbbb
Du fichier excel viewdetail situé à l'adresse "http://aaaaa/private/incident"
L'adresse du fichier, je n'en suis pas sûr (je lis un dossier réseau, mais je n'ai pas contrôlé la syntaxe).

Juste avec un code erroné, je ne peux rien faire.
Là, j'ai un code et ce qu'il est supposé faire => je peux me raccrocher soit à l'un soit à l'autre pour comprendre où est l'erreur et dépanner. Avec l'explication seule, je peux créer un code. avec un bout de code faux, je peux... dire qu'il est faux !
A+
 

Alghorn

XLDnaute Junior
Re : Récupérer la valeur d'une textbox pour création d'un lien hypertexte

Bonsoir le forum,

Désolé pour cette réponse si tardive mais j'étais en déplacement à l'étranger, là ou internet est encore une légende :D

Avant tout, mes excuses pour mon derniers messages, Gorfael tu as entièrement raison, ce n'est pas en balançant un bout de code que l'on fait avancer le shmurtz :p

Du coup, j'ai quand même bien avancer et résolu mon problème. Je vous donne mon code, avec un peu de chance cela peut servir à d'autres galériens comme moi ;)

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range
For Each Cel In Target
If Not Intersect(Cel, Range("AD:AD")) Is Nothing Then
If Cel.Value = "Oui" Then
Range("AD7").Select
numfiche = InputBox("Donnez le numéro de la fiche ", "Fiche", "ANNULER")
If numfiche <> "ANNULER" Then
URL = "http://aaaa.fr/private/bbbb/viewdetail/id_cccc/" & numfiche
Range("AD7").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=URL, TextToDisplay:="Oui"
End If
Else
ActiveSheet.Hyperlinks.Delete
End If
End If
Next Cel

End Sub

Ce n'est peut être pas le plus propre des codes mais ça marche :p
En gros, dès que l'on passe une cellule de la colonne AD en "oui", une boite de dialogue apparait pour y renseigner une donnée (un chiffre dans mon cas), qui l'on concatenne dans l'URL du lien hypertexte que l'on veux créer.

Merci à James pour son idée de concatenation, encore une fois tu mù'as sorti d'un mauvais pas ;)
Merci également au forum, si bienveillant envers un débutant comme moi !

A bientôt
 

Gorfael

XLDnaute Barbatruc
Re : Récupérer la valeur d'une textbox pour création d'un lien hypertexte

Salut Alghorn et le forum,
La même en plus court :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Or Intersect(Target, Range("AD:AD")) Is Nothing Then Exit Sub
If Target = "Oui" Then
    numfiche = InputBox("Donnez le numéro de la fiche ", "Fiche", "ANNULER")
    If numfiche <> "ANNULER" Then
        URL = "http://aaaa.fr/private/bbbb/viewdetail/id_cccc/" & numfiche
        ActiveSheet.Hyperlinks.Add Anchor:=Range("AD7"), Address:=URL, TextToDisplay:="Oui"
    End If
Else
    ActiveSheet.Hyperlinks.Delete
End If
End Sub
Qu'est-ce qui change par rapport à ton code :

Suppression de la boucle Cel : comme tout atterrit en AD7, si tu as plusieurs valeur qui passent à oui (par copier/coller), seule la dernière est prise en compte => comme tu ne cherches pas à faire des choses inutile, tu ne fera qu'une cellule à la fois => pas besoin de boucle.

Suppression du tandem Select/selection : ça ne sert qu'à ralentir le code. Dans ton code, tu sélectionnes même deux fois AD7, sans action entre (le bégaiement, ça se corrige :p).

Création des indentations : ça ne sert pas à faire plus "joli". Le but est de savoir exactement où on se trouve dans les boucles, tests et With. Sur un petit code, c'est de la fioriture, je le reconnais. Mais, pour moi, c'est devenu une habitude, comme la déclaration de variables. Ça ne prend son sens que quand on a un code long, qu'on est crevé, et que ça urge.
A+
 

Discussions similaires

Réponses
7
Affichages
465
Réponses
2
Affichages
279

Statistiques des forums

Discussions
312 084
Messages
2 085 192
Membres
102 810
dernier inscrit
mohammedaminelahbali