OVH Cloud OVH Cloud

Saisie de liens Hypertext dans un Userform ?

5 réponses
Avatar
Domi
Bonjour,
J'essai de faire une petite base de données (peu d'enregistrements et pas
relationnelle) dans laquelle je voudrais que quelques champs (cellules)
contiennent l'adresse (l'emplacement) d'un document sur un petit réseau
d'entreprise.

Je sais insérer ce lien directement dans la cellule d'une feuille, Click
droit, Insérer lien Hypertext, Fichier, et je navigue sur mon réseau pour
pointer le fichier...
Mais comment faire la même chose depuis un userform servant de formulaire de
saisie ?

Est-il possible de saisir dans un textbox ce même emplacement de façon aussi
simple ? Et d'enregistrer ensuite ce lien dans une cellule de la base de
données tout aussi simplement en validant ?

Savez-vous où je pourrais trouvez un (des) exemple d'une telle réalisation ?
Merci par avance
Domi

5 réponses

Avatar
Rai
Bonjour,
J'essai de faire une petite base de données (peu d'enregistrements et pas
relationnelle) dans laquelle je voudrais que quelques champs (cellules)
contiennent l'adresse (l'emplacement) d'un document sur un petit réseau
d'entreprise.

Je sais insérer ce lien directement dans la cellule d'une feuille, Click
droit, Insérer lien Hypertext, Fichier, et je navigue sur mon réseau pour
pointer le fichier...
Mais comment faire la même chose depuis un userform servant de formulaire de
saisie ?

Est-il possible de saisir dans un textbox ce même emplacement de façon aussi
simple ? Et d'enregistrer ensuite ce lien dans une cellule de la base de
données tout aussi simplement en validant ?

Savez-vous où je pourrais trouvez un (des) exemple d'une telle réalisation ?
Merci par avance
Domi




Bonjour,

S'il s'agit d'utiliser le chermin vers un fichier, tu peux contourne ton
problème en utilisant une boîte de dialogue de sélection de fichiers.

Regarde du côté de FileDialog :

With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.Title = "Sélectionnez un fichier"
.Show
'Attention, il faudra penser à gérer l'appui sur le bouton annuler
MyLink = .SelectedItems(1)
End With
'Ajoute le lien à la cellule sélectionnée
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=MyLink



Ca conviendrait ?

Cordialement

Rai

Avatar
Domi
Bonjour,
C'est une première approche. Ca me permet effectivement de sauvegarder le
chemein sous forme d'un lien Hypertext mais dans la cellule active de la
feuille.
Le problème c'est que je suis dans un userform qui fait office de formulaire
de saisie. ca n'est que lorsque je valide la saisie de tous les champs que
les données sont enregistrées dans ma base à un emplacement variable (la
dernière ligne vide de ma base de donnée).
Vois-tu mon problème ?

J'avais commencé un truc qui fait en partie ce que je veux (et avec lequel
j'obtiens un résultat similaire au tien au début...) :
Dans mon userform, j'ai mis un bouton de cde à coté de mon Textbox LienDoc1
La commande du bouton fait cela :

'J'enregistre le chemin dans une cellule provisoire (D1)
Worksheets("BASE").Range("D1").Select
' Je selectionne mon fichier (le lien hypertext se retrouve dans D1)
Application.Dialogs(xlDialogInsertHyperlink).Show
'Je copie le contenue de D1 dans mon mon Textbox
Me.LienDoc1.Value = Worksheets("BASE").Range("D1").Value
Worksheets("BASE").Range("D1").Clear

Ensuite quand je validerai, j'enverai le contenu du Textbox dans le bon
emplacement sur la bonne ligne.
PROBLEME : Le contenu est du Texte et n'est plus un lien HyperText.... Là je
coince

Existe-t-il un moyen de transformer un chemein sous forme de texte en lien
HyperText ?

Toute suggestion reste la bienvenue ;o)
Merci
Domi




"Rai" <raimondpointschmidtatberlinpointde> a écrit dans le message de
news:43d20299$0$20162$
Bonjour,
J'essai de faire une petite base de données (peu d'enregistrements et
pas


relationnelle) dans laquelle je voudrais que quelques champs (cellules)
contiennent l'adresse (l'emplacement) d'un document sur un petit réseau
d'entreprise.

Je sais insérer ce lien directement dans la cellule d'une feuille, Click
droit, Insérer lien Hypertext, Fichier, et je navigue sur mon réseau
pour


pointer le fichier...
Mais comment faire la même chose depuis un userform servant de
formulaire de


saisie ?

Est-il possible de saisir dans un textbox ce même emplacement de façon
aussi


simple ? Et d'enregistrer ensuite ce lien dans une cellule de la base de
données tout aussi simplement en validant ?

Savez-vous où je pourrais trouvez un (des) exemple d'une telle
réalisation ?


Merci par avance
Domi




Bonjour,

S'il s'agit d'utiliser le chermin vers un fichier, tu peux contourne ton
problème en utilisant une boîte de dialogue de sélection de fichiers.

Regarde du côté de FileDialog :

With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.Title = "Sélectionnez un fichier"
.Show
'Attention, il faudra penser à gérer l'appui sur le bouton annuler
MyLink = .SelectedItems(1)
End With
'Ajoute le lien à la cellule sélectionnée
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=MyLink



Ca conviendrait ?

Cordialement

Rai



Avatar
Rai
Bonjour,
C'est une première approche. Ca me permet effectivement de sauvegarder le
chemein sous forme d'un lien Hypertext mais dans la cellule active de la
feuille.
Le problème c'est que je suis dans un userform qui fait office de formulaire
de saisie. ca n'est que lorsque je valide la saisie de tous les champs que
les données sont enregistrées dans ma base à un emplacement variable (la
dernière ligne vide de ma base de donnée).
Vois-tu mon problème ?

J'avais commencé un truc qui fait en partie ce que je veux (et avec lequel
j'obtiens un résultat similaire au tien au début...) :
Dans mon userform, j'ai mis un bouton de cde à coté de mon Textbox LienDoc1
La commande du bouton fait cela :

'J'enregistre le chemin dans une cellule provisoire (D1)
Worksheets("BASE").Range("D1").Select
' Je selectionne mon fichier (le lien hypertext se retrouve dans D1)
Application.Dialogs(xlDialogInsertHyperlink).Show
'Je copie le contenue de D1 dans mon mon Textbox
Me.LienDoc1.Value = Worksheets("BASE").Range("D1").Value
Worksheets("BASE").Range("D1").Clear

Ensuite quand je validerai, j'enverai le contenu du Textbox dans le bon
emplacement sur la bonne ligne.
PROBLEME : Le contenu est du Texte et n'est plus un lien HyperText.... Là je
coince

Existe-t-il un moyen de transformer un chemein sous forme de texte en lien
HyperText ?

Toute suggestion reste la bienvenue ;o)
Merci
Domi




re-,

En fait tu es à 1 ligne de code de ta solution ;-))

Application.Dialogs(xlDialogInsertHyperlink).Show
LienDoc1.Text = ActiveCell.Hyperlinks(1).Address

Bonne chance & bon week-end

Rai

Avatar
Domi
Désolé mais je coince toujours...
LienDoc1.Text = ActiveCell.Hyperlinks(1).Address... ça me met le lien dans
une cellule de la feuille (inutile pour moi) et ça recopie le chemin dans
mon textbox, OK pas de problème pour cela.
Mon problème, c'est que je voudrais ensuite , lorsque je validerai les
valeurs saisies dans mon userform, copier ce "chemin" dans une cellule et
que dans cette cellule ce "chemin" soit un lien HyperText.

Si je fais cela par exemple :
Application.Dialogs(xlDialogInsertHyperlink).Show
LienDoc1.Text = ActiveCell.Hyperlinks(1).Address
Worksheets("BASE").Range("D2").Value = LienDoc1.Value
Dans D2 je retrouve un chemin, sous forme de texte, mais pas un lien
HyperText...

Je veux dans un masque de saisie (Useform) capturer plusieurs "chemins" vers
des fichiers et les recopier ensuite (si je valide les données saisies) dans
des cellules sous la forme de liens HyperText.

Mais est-ce faisable ...?
Domi








Bonjour,
C'est une première approche. Ca me permet effectivement de sauvegarder
le


chemein sous forme d'un lien Hypertext mais dans la cellule active de la
feuille.
Le problème c'est que je suis dans un userform qui fait office de
formulaire


de saisie. ca n'est que lorsque je valide la saisie de tous les champs
que


les données sont enregistrées dans ma base à un emplacement variable (la
dernière ligne vide de ma base de donnée).
Vois-tu mon problème ?

J'avais commencé un truc qui fait en partie ce que je veux (et avec
lequel


j'obtiens un résultat similaire au tien au début...) :
Dans mon userform, j'ai mis un bouton de cde à coté de mon Textbox
LienDoc1


La commande du bouton fait cela :

'J'enregistre le chemin dans une cellule provisoire (D1)
Worksheets("BASE").Range("D1").Select
' Je selectionne mon fichier (le lien hypertext se retrouve dans D1)
Application.Dialogs(xlDialogInsertHyperlink).Show
'Je copie le contenue de D1 dans mon mon Textbox
Me.LienDoc1.Value = Worksheets("BASE").Range("D1").Value
Worksheets("BASE").Range("D1").Clear

Ensuite quand je validerai, j'enverai le contenu du Textbox dans le bon
emplacement sur la bonne ligne.
PROBLEME : Le contenu est du Texte et n'est plus un lien HyperText....
Là je


coince

Existe-t-il un moyen de transformer un chemein sous forme de texte en
lien


HyperText ?

Toute suggestion reste la bienvenue ;o)
Merci
Domi




re-,

En fait tu es à 1 ligne de code de ta solution ;-))

Application.Dialogs(xlDialogInsertHyperlink).Show
LienDoc1.Text = ActiveCell.Hyperlinks(1).Address

Bonne chance & bon week-end

Rai



Avatar
Rai
Désolé mais je coince toujours...
LienDoc1.Text = ActiveCell.Hyperlinks(1).Address... ça me met le lien dans
une cellule de la feuille (inutile pour moi) et ça recopie le chemin dans
mon textbox, OK pas de problème pour cela.
Mon problème, c'est que je voudrais ensuite , lorsque je validerai les
valeurs saisies dans mon userform, copier ce "chemin" dans une cellule et
que dans cette cellule ce "chemin" soit un lien HyperText.

Si je fais cela par exemple :
Application.Dialogs(xlDialogInsertHyperlink).Show
LienDoc1.Text = ActiveCell.Hyperlinks(1).Address
Worksheets("BASE").Range("D2").Value = LienDoc1.Value
Dans D2 je retrouve un chemin, sous forme de texte, mais pas un lien
HyperText...

Je veux dans un masque de saisie (Useform) capturer plusieurs "chemins" vers
des fichiers et les recopier ensuite (si je valide les données saisies) dans
des cellules sous la forme de liens HyperText.

Mais est-ce faisable ...?
Domi








Bonjour,
C'est une première approche. Ca me permet effectivement de sauvegarder
le


chemein sous forme d'un lien Hypertext mais dans la cellule active de la
feuille.
Le problème c'est que je suis dans un userform qui fait office de
formulaire


de saisie. ca n'est que lorsque je valide la saisie de tous les champs
que


les données sont enregistrées dans ma base à un emplacement variable (la
dernière ligne vide de ma base de donnée).
Vois-tu mon problème ?

J'avais commencé un truc qui fait en partie ce que je veux (et avec
lequel


j'obtiens un résultat similaire au tien au début...) :
Dans mon userform, j'ai mis un bouton de cde à coté de mon Textbox
LienDoc1


La commande du bouton fait cela :

'J'enregistre le chemin dans une cellule provisoire (D1)
Worksheets("BASE").Range("D1").Select
' Je selectionne mon fichier (le lien hypertext se retrouve dans D1)
Application.Dialogs(xlDialogInsertHyperlink).Show
'Je copie le contenue de D1 dans mon mon Textbox
Me.LienDoc1.Value = Worksheets("BASE").Range("D1").Value
Worksheets("BASE").Range("D1").Clear

Ensuite quand je validerai, j'enverai le contenu du Textbox dans le bon
emplacement sur la bonne ligne.
PROBLEME : Le contenu est du Texte et n'est plus un lien HyperText....
Là je


coince

Existe-t-il un moyen de transformer un chemein sous forme de texte en
lien


HyperText ?

Toute suggestion reste la bienvenue ;o)
Merci
Domi


re-,


En fait tu es à 1 ligne de code de ta solution ;-))

Application.Dialogs(xlDialogInsertHyperlink).Show
LienDoc1.Text = ActiveCell.Hyperlinks(1).Address

Bonne chance & bon week-end

Rai



OK, alors :

Si on considère que MonRange est ta cellule destination

Application.Dialogs(xlDialogInsertHyperlink).Show
MyLink = ActiveCell.Hyperlinks(1).Address
ActiveSheet.Hyperlinks.Add Anchor:=MonRange, Address:= MyLink,
TextToDisplay:= MyLink

Avec ça tu devrais être OK maintenant.

Rai