Lien hypertexte dans VBA

Résolu/Fermé
f1solution Messages postés 10 Date d'inscription dimanche 16 octobre 2016 Statut Membre Dernière intervention 21 juillet 2017 - Modifié par f1solution le 16/10/2016 à 19:33
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 19 oct. 2016 à 10:44
Bonjour à tous!

Voilà, je suis assez nul en programmation VBA. J'aimerais vous demander un service. J'utilise VBA 7.1

Je voulais créer une formulaire avec VBA pour Excel, pour mettre en place une base de données des candidats à une offre d'emploi. Dans les colonnes il y a le Référence, Nom, Prénom, Adresse, Age, Sexe, Diplôme, jusque là il n'y a pas de problème, mais mon problème c'est sur le dernier colonne qui est un lien pour ouvrir le CV qui se situe dans une répértiore de mon disque dur.

1er option : (qui est l'idéal)

Renommer les CV comme les références (colonne A) et de créer une macro pour chercher automatiquement le CV dans le répertoire à partir de du référence.

2ème option :

Quand je rempli le formulaire, je clic sur un bouton pour chercher le fichier contenant le CV dans le répertoire, Et après de marquer ce lien dans le tableau pour que je puisse cliquer dessus pour ouvrir le fichier.

Je penses être précis sur mon problème.

Merci d'avance.

4 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
16 oct. 2016 à 22:05
Bonjour,

Avec la "2ème option :", si ton CV est dans TextBox1, cela devrait fonctionner avec cette procedure :
Private Sub TextBox1_Enter()
With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        .Show
        If .SelectedItems.Count = 1 Then TextBox1 = .SelectedItems(1)
End With
End Sub

0
f1solution Messages postés 10 Date d'inscription dimanche 16 octobre 2016 Statut Membre Dernière intervention 21 juillet 2017
17 oct. 2016 à 15:45
Merci gbinforme pour ta réponse. Je vais essayé et reviens vers toi.
0
f1solution Messages postés 10 Date d'inscription dimanche 16 octobre 2016 Statut Membre Dernière intervention 21 juillet 2017
17 oct. 2016 à 16:02
Petite précision gbinforme. Mon CV se situe dans le disque dur. Disons E:\CV
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684 > f1solution Messages postés 10 Date d'inscription dimanche 16 octobre 2016 Statut Membre Dernière intervention 21 juillet 2017
17 oct. 2016 à 18:08
Aucune importance, la procédure parcours ton disque comme l'explorateur et tu peux préciser la position de départ :
Private Sub TextBox1_Enter()
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.InitialFileName = "E:\CV\"
.Show
If .SelectedItems.Count = 1 Then TextBox1 = .SelectedItems(1)
End With
End Sub
0
f1solution Messages postés 10 Date d'inscription dimanche 16 octobre 2016 Statut Membre Dernière intervention 21 juillet 2017 > gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020
17 oct. 2016 à 20:32
Merci gbinforme, ça a marché jusqu'à l'ouverture du répertoire. Maintenant ce qui reste à faire, c'est comment mettre ce lien sur le tableau Excel dans la colonne "lien".

C'est à dire qu'à chaque enregistrement (d'un CV) dans une formulaire je puisse mettre un lien pour ouvrir le CV (fichier).

L'objectif final est que je puisse filtrer par exemple les candidats qui ont le diplôme de licence, une fois que le filtre est établi, je clic sur un lien pour ouvrir le CV d'un candidat.

C'est un peu compliqué, mais j'espère avoir suffisamment expliqué mon problème.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
17 oct. 2016 à 21:43
Bonsoir,

Lorsque tu valides ton formulaire, pour enregistrer en lien le fichier que tu as choisis tu peux mettre cette instruction :
ActiveSheet.Hyperlinks.Add Anchor:=Cells(lig, "H"), Address:= _
        TextBox1.Value, TextToDisplay:= _
        Mid(TextBox1.Value, InStrRev(TextBox1.Value, "\") + 1)
Tu remplaces évidemment "lig" par ta variable et "TextBox1" par le nom de ta textbox et éventuellement "ActiveSheet" par le nom de ta feuille "Sheets("mafeuille")".
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
17 oct. 2016 à 11:42
Bonjour,

Pourquoi se compliquer la vie. La solution tu l'as donné dans ton titre Lien hypertexte.

mais mon problème c'est sur le dernier colonne qui est un lien pour ouvrir le CV qui se situe dans une répértiore de mon disque dur.

c'est là que tu mets ton lien hypertexte.
0
f1solution Messages postés 10 Date d'inscription dimanche 16 octobre 2016 Statut Membre Dernière intervention 21 juillet 2017
17 oct. 2016 à 15:52
Merci pour ta réponse cs_Le Pivert. En fait, si je n'utilise pas une formulaire je peux mettre directement le lien dans le tableau. Ce qui n'est pas évident pour plus de 2 000 CV. C'est pour cela que je cherche un moyen de faire figurer le lien dans le tableau par l'intermédiaire d'une formulaire.
Une formulaire classique n'est pas capable de le faire, je suis obliger d'utiliser une formulaire personnalisée.
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728 > f1solution Messages postés 10 Date d'inscription dimanche 16 octobre 2016 Statut Membre Dernière intervention 21 juillet 2017
17 oct. 2016 à 18:39
Si tes CV sont dans le même répertoire et qu'ils sont au même nom que celui dans la colonne. Tu peux faire cela sans formulaire, juste en cliquant sur le nom saisi sur la feuille.
A voir?
0
f1solution Messages postés 10 Date d'inscription dimanche 16 octobre 2016 Statut Membre Dernière intervention 21 juillet 2017 > cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024
18 oct. 2016 à 17:31
Bonjour,
Merci pour ton aide. C'est ce que je pensais être le mieux, mais le problème c'est que je suis obliger d'écrire un programme pour le faire alors que je suis assez nul en programmation :(
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728 > f1solution Messages postés 10 Date d'inscription dimanche 16 octobre 2016 Statut Membre Dernière intervention 21 juillet 2017
Modifié par cs_Le Pivert le 18/10/2016 à 17:53
Il faut juste m'indiquer la colonne où ce trouve les noms qui correspondent a ceux de ton dossier de CV. Ensuite me dire de quelle extension sont tes fichiers CV. Je te fait un classeur exemple où il n'y aura qu'a copier quelque lignes sur ton classeur, ce n'est pas très compliqué. Il suffira ensuite que tu mettes ton classeur dans le même dossier que tes CV.

@+
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
18 oct. 2016 à 17:56
Voici un exemple, il suffit de dezipper:

http://www.cjoint.com/c/FJsp3XqkLcQ
0
f1solution Messages postés 10 Date d'inscription dimanche 16 octobre 2016 Statut Membre Dernière intervention 21 juillet 2017
19 oct. 2016 à 10:07
Bonjour,
Merci beaucoup, ça a marché. J'ai le choix entre celui de gbinforme et le tien.
Tu es un génie.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
19 oct. 2016 à 10:44
Bonjour f1solution, cs_Le Pivert,

"Abondance de bien ne nuit pas" ;-)

Choisit la solution qui te convient car il n'y a que celle-là qui te soit adaptée.

Pour la suite, tu sauras que les solutions sont multiples.

Bonne continuation.
0