Aide lien hypertext dans un userform (textbox ou label)

bonjour,

Dans un userform j'ai une case recherche (référence )

quand je tape la reference ça viens cherche dans la feuille stock et ça m'indique la référence le prix la quantité etc (dans userforme)

j'ai crée une textbox ou un label qui viens cherche le lien hypertext (colonne K) de la reference ; il s'affiche bien dans userform (textbox ou label j'ai tester les deux) mais il n'est pas en lien hypertext donc je ne peux pas ouvrir pour voir de quoi il s'agit...

avez vous une solution ou un code ?

merci

bonne journée

Bonjour,

Sans fichier, je pense qu'on a du mal à comprendre ce que tu souhaites "ouvrir" à partir de ton userform ?

Un lien ok mais vers où ?

Désolé mais la demande n'est pas claire... enfin pour moi

bonjour Xmenpl

je ne peux pas envoyer le fichier c'est un fichier entreprise..

quand je tape la référence il remplis tout les autre champs (même celui de photo pièce que j'ai rajouté) mais il me le mais en écriture normal et je voudrais qu'il ce mette en texte lien pour pouvoir faire un double clic pour qu'il ouvre mon JPEG ou pdf car chaque référence a un lien dans un dossier différents

ces lien la ce trouve en colonne K

il reporte bien le lien de ma recherche référence mais en écriture normal et non en lien hypertex pour pouvoir y accéder...

je sais pas si c'est plus clair ?

capture

Re,

Effectivement c'est un peu plus clair donc ce sont des liens vers des fichiers autres que celui ouvert.

En premier je pense qu'il faut que "l'alimentation de ta textbox soit reconnu comme lien hypertexte du genre :

Texbox1.value=Worksheets("TAFEUILLE").Cells(TAREFLIGNE, 11).Hyperlinks(1).Address

Ensuite il faudra un évènement dans le genre double clic sur la textbox :

Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1 <> "" Then ThisWorkbook.FollowHyperlink TextBox1
end if
End Sub

A tester

Re Xmenpl ,

merci de ton aide je viens de tester ça ne fonctionne pas ERREUR 104 : définie par application ou objet

on ne doit pas etre loin je pense

j'ai crée une textbox5 pour le lien

j'ai mis ça Texbox5.Value = Worksheets("stock").Cells(TAREFLIGNE, 11).Hyperlinks(1).Address

pour le TAREFLIGNE je le laisse comme ça je suppose ? mes liens son dans feuille stock en colonne K

merci

Ben non "Ta référence ligne" ta ref ligne çà moi je ne l'ai pas !

Utilises la même référence ligne qui te sert à trouver le coût unitaire je n'ai indiqué que le chiffre de la colonne 11

car tu m'as précisé colonne K

je viens d'essayer ça marche pas grrr

voici mon code

Dim celluletrouvee As Range

Dim l As Integer

reference = TextBox1.Value

Set celluletrouvee = Sheets("Stock").Range("A2:A15000").Find(reference, Lookat:=xlWhole)

If celluletrouvee Is Nothing Then

libele = "NC"

stocksecu = "NC"

quantite = "NC"

cout = "NC"

valeur = "NC"

emplacement = "NC"

moule = "NC"

fournisseur = "NC"

photo_piece = "NC"

Else

l = celluletrouvee.Row

libele = Sheets("Stock").Cells(l, 2).Value

stocksecu = Sheets("Stock").Cells(l, 3).Value

quantite = Sheets("Stock").Cells(l, 4).Value

cout = Sheets("Stock").Cells(l, 5).Value

valeur = Sheets("Stock").Cells(l, 6).Value

emplacement = Sheets("Stock").Cells(l, 7).Value

moule = Sheets("Stock").Cells(l, 8).Value

fournisseur = Sheets("Stock").Cells(l, 9).Value

photo_piece = Sheets("Stock").Cells(l, 12).Value

End If

Label3.Caption = quantite

Label6.Caption = libele

Label7.Caption = stocksecu

Label10.Caption = cout

Label12.Caption = valeur

Label15.Caption = emplacement

Label18.Caption = moule

Label19.Caption = fournisseur

TextBox5.Value = photo_piece

je nv ois ça pourrai etre quoi autre ou a moins que je sois passer a coté

et le module 1

Sub referencement()

Dim celluletrouvee As Range

Dim ligne, nbligne As Integer

feuille = Sheets("Stock").ComboBox1.Value

nbligne = Range("N13").Value + 1

If feuille = "" Then

MsgBox "Choisir Machine"

GoTo pasdemoule

End If

For ligne = 2 To nbligne

If Cells(ligne, 13).Value = "x" Or Cells(ligne, 13).Value = "X" Then

reference = Cells(ligne, 1).Value

libele = Cells(ligne, 2).Value

stocksecu = Cells(ligne, 3).Value

quantite = Cells(ligne, 4).Value

cout = Cells(ligne, 5).Value

emplacement = Cells(ligne, 7).Value

moule = Cells(ligne, 8).Value

fournisseur = Cells(ligne, 9).Value

PHOTO_piece = Cells(ligne, 11).Value

Set celluletrouvee = Sheets(feuille).Range("A2:A15000").Find(reference, Lookat:=xlWhole)

If celluletrouvee Is Nothing Then

'collage des info

Sheets(feuille).Range("A65536").End(xlUp).Offset(1, 0).Value = reference

Sheets(feuille).Range("A65536").End(xlUp).Offset(0, 1).Value = libele

Sheets(feuille).Range("A65536").End(xlUp).Offset(0, 2).Value = stocksecu

Sheets(feuille).Range("A65536").End(xlUp).Offset(0, 3).Value = quantite

Sheets(feuille).Range("A65536").End(xlUp).Offset(0, 4).Value = cout

Sheets(feuille).Range("A65536").End(xlUp).Offset(0, 6).Value = emplacement

Sheets(feuille).Range("A65536").End(xlUp).Offset(0, 7).Value = fournisseur

If moule <> "" Then Sheets("Stock").Cells(ligne, 8).Value = moule & ", " & feuille

If moule = "" Then Sheets("Stock").Cells(ligne, 8).Value = feuille

Else

GoTo existe

End If

End If

existe:

Next ligne

Sheets("Stock").Select

Range("M2:M15000").Value = ""

Range("M2").Select

MsgBox "Pièces du moule renseignée(s)"

pasdemoule:

End Sub

Bonjour,

Via un double clic sur votre TextBox5, essayer ce code

Private Sub TextBox5_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    if TextBox5.Value = Empty   Then Exit Sub

    Cancel = True
    CreateObject("shell.application").ShellExecute TextBox5.Value, "", "", "open", 1
End Sub
 

Bonjour,

voici un bout du fichier

taper en reference : ref1

piur information mais photo seron dans le C:\EXCEL\photos

129v3.xlsm (879.57 Ko)

Bonjour thev ,

je viens de tester voici ce que ça me fait

merci de ton aide

pour information mais photo seront dans le C:\EXCEL\photos

capture

Bonjour,

Le code récupérant l'adresse du lien dans TextBox5 est erroné.

Ci-dessous code modifié

Private Sub TextBox5_Enter()
    Dim cell As Range
    Dim lien As Hyperlink

    If TextBox1.Value = Empty Then Exit Sub

    With Sheets("Stock")
        Set cell = .Columns("A").Find(TextBox1.Value, Lookat:=xlWhole)
        If cell Is Nothing Then Exit Sub

        For Each lien In .Hyperlinks
            If lien.Range.Row = cell.Row Then TextBox5.Value = lien.Address: Exit For
        Next lien
    End With
 End Sub

Private Sub TextBox5_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    If TextBox5.Value = Empty Then Exit Sub

    Cancel = True
    CreateObject("shell.application").ShellExecute TextBox5.Value, "", "", "open", 1

End Sub

RE thev

Je viens d'essayer ça fonctionne super bien ! un ernorme merci !!

quelle que chose me chiffonne dans ton code il vient récupere le lien de image donc normalement ça devrait marcher sur n'importe quel dossier j'ai test sur C: parfait si je mais sur le bureau ça ne fonctionne pas bizarre je trouve

je te remercie encore pour cette grande aide sujet clos

bonne journée

parfait si je mais sur le bureau ça ne fonctionne pas bizarre je trouve

Cela vient certainement de l'adresse du lien hypertexte qui peut être relative ou absolue.

L'adresse est absolue quand le chemin du fichier est complet avec une unité de référence, exemple avec une unité (U) :

adresse = U:\répertoire\nom_du fichier

L'adresse est relative quand elle est de type :

adresse = répertoire_fichier\nom_du_fichier

L' adresse complète est alors obtenue à partir du répertoire où se trouve le classeur

adresse complète = répertoire_classeur & "\" & adresse relative .

Pour obtenir le fichier, il faut dans tous les cas l'adresse complète.

super merci pour explication je comprend mieux !

merci pour toutes ces info et le code

je viens d'essayer ça marche pas grrr

voici mon code

[Barrer]Dim celluletrouvee As Range

Dim l As Integer

reference = TextBox1.Value

Set celluletrouvee = Sheets("Stock").Range("A2:A15000").Find(reference, Lookat:=xlWhole)

If celluletrouvee Is Nothing Then

libele = "NC"

stocksecu = "NC"

quantite = "NC"

cout = "NC"

valeur = "NC"

emplacement = "NC"

moule = "NC"

fournisseur = "NC"

' inutile photo_piece = "NC"

Else

l = celluletrouvee.Row ' en fait non c'est ligne trouvée c'est donc I qu'il fallait

libele = Sheets("Stock").Cells(l, 2).Value

stocksecu = Sheets("Stock").Cells(l, 3).Value

quantite = Sheets("Stock").Cells(l, 4).Value

cout = Sheets("Stock").Cells(l, 5).Value

valeur = Sheets("Stock").Cells(l, 6).Value

emplacement = Sheets("Stock").Cells(l, 7).Value

moule = Sheets("Stock").Cells(l, 8).Value

fournisseur = Sheets("Stock").Cells(l, 9).Value

' inutile photo_piece = Sheets("Stock").Cells(l, 12).Value

End If

Label3.Caption = quantite

Label6.Caption = libele

Label7.Caption = stocksecu

Label10.Caption = cout

Label12.Caption = valeur

Label15.Caption = emplacement

Label18.Caption = moule

Label19.Caption = fournisseur

Texbox5.Value = Worksheets("stock").Cells(l, 11).Hyperlinks(1).Address

je nv ois ça pourrai etre quoi autre ou a moins que je sois passer a coté

Voilà mais je vois que Thev a fait autrement en indiquant directement dans l'évènement de la textbox

re Xmenpl

merci pour ta réponse je vais rectifier cela =)

re Xmenpl

merci pour ta réponse je vais rectifier cela =)

Sauf çà :

l = celluletrouvee.Row ( çà faut laisser ainsi) mais pour info I indqiue la ligne que tu cherchais.

D'où la façon d'écrire les codes vba ensuite Sheets("Stock").Cells(l, chiffre de la colonne).Value

MERCI pour ton aide =)

Rechercher des sujets similaires à "aide lien hypertext userform textbox label"