Bonjour,
Je me tourne à nouveau vers les pros de ce forum
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
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
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
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.
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...
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+
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
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
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
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 !
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 ).
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+