Hyperlien extension variable

lepigoennier

XLDnaute Junior
Bonjour à tous,

Je ne sais pas si c'est possible :

Dans mon document excel, j'ai le # d'item et le chemin du dossier. Chaque # item a un dessin associé mais enregistré avec différentes extension (.pdf, .ppt, .doc). Les documents sont enregistré sous le format #d'item.extension. Je voudrais pouvoir ouvrir le document directement d'Excel en cliquant sur un hyperlien sans créer une base de donnée pour chacun des documents (environ 50K). Je sais faire l'hyperlien, mais pas avec une extension variable.

Merci
 

Pièces jointes

  • HYPERLIEN.xlsx
    8.8 KB · Affichages: 38

Modeste

XLDnaute Barbatruc
Re : Hyperlien extension variable

Bonjour lepigoennier,

Il me semble qu'en plus de ton exemple, il nous manque une info: comment y introduire la variation des extensions? Chaque ligne doit générer trois hyperliens? ... ou une même extension revient toutes les 3 lignes? ... ou alors il y a quelque chose qui m'échappe :confused:
 

lepigoennier

XLDnaute Junior
Re : Hyperlien extension variable

En fait, j'ai les documents suivants :

Dossier A :
A10.pdf
A12.doc
A13.doc

Dossier B :
B10.ppt
B11.doc
B45.pdf

Dossier C :
C3.doc
C2.doc
C1.ppt

1) Ce que je voudrais, c'est d'avoir une extension "variable" dans mon hyperlink qui me permettrait d'ouvrir le document. Je te donne un exemple avec 9 documents, mais j'en ai environ 50K. JE ne veux pas être prise pour mettre manuellement l'extension pour tous les documents.

ou

2)Une macro permettant d'aller chercher l'extension d'un document
 

Modeste

XLDnaute Barbatruc
Re : Hyperlien extension variable

Re,

En ce qui me concerne, en admettant que j'aie bien compris ET que chaque #item renseigné en colonne A soit le seul fichier à ce nom, enregistré à l'emplacement renseigné en colonne B, je ne vois guère de solution que par macro ...

Avec les valeurs encodées dans la première feuille du classeur et le code suivant, placé dans un module standard:
VB:
SSub liens()
    Application.ScreenUpdating = False
    With Sheets(1)
    For Each c In .[A2].Resize(Application.CountA(.[A:A]) - 1, 1)
        fich = Dir(c.Offset(0, 1) & "\" & c & ".*")
        If fich <> "" Then c.Offset(0, 2).FormulaLocal = "=LIEN_HYPERTEXTE(""" & c.Offset(0, 1) & "\" & fich & """)"
    Next c
    End With
    Application.ScreenUpdating = True
End Sub

... testé sur le fichier joint au message précédent (et avec un seul fichier en C:\A), ça semble fonctionner.

Ne teste pas avec ton fichier de 50.000 lignes, dans un premier temps!
 

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 091
Membres
103 465
dernier inscrit
Ehoarn_src