Lien hypertexte dans VBA

Résolu
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

  1. Contributeur
    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
    1. Merci gbinforme pour ta réponse. Je vais essayé et reviens vers toi.
      0
    2. Petite précision gbinforme. Mon CV se situe dans le disque dur. Disons E:\CV
      0
    3. Contributeur
      @f1solutionAucune 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
    4. @gbinformeMerci 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
    5. Contributeur
      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
  2. Contributeur
    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
    1. 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
    2. Contributeur
      @f1solutionSi 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
    3. @cs_Le PivertBonjour,
      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
    4. Contributeur
      @f1solutionIl 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
  3. Contributeur
    Voici un exemple, il suffit de dezipper:

    http://www.cjoint.com/c/FJsp3XqkLcQ
    0
    1. Bonjour,
      Merci beaucoup, ça a marché. J'ai le choix entre celui de gbinforme et le tien.
      Tu es un génie.
      0
  4. Contributeur
    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