Microsoft 365 Fonction lien Hypertexte

Rémi_S

XLDnaute Nouveau
Bonjour à tous,

Apres deux jours de recherche, je m'en remets à vous :

Je dois créer un Excel référence répertoriant tout les documents d'un gros dossier (1500 docs)
Pour faciliter la lecture au client, je veux créer des liens hypertextes pour ouvrir chaque documents directement depuis l'excel.

J'utilise donc la fonction "Lien_hypertextes()"
Cependant, cette fonction ne marche pas si on déplace le dossier ou si on le copie sur un Drive.

Tout fonctionne correctement si je rentre manuellement le lien : insertion - lien -...
Cependant, pour 1500 docs, c'est long, très long...

Pourquoi le lien hypertexte ne suit pas le doc comme le mode manuel le fait ?

Pouvez vous m'aider à automatiser le mode manuel ?

Je vous remercie de votre aide.

PS : En attendant, je fais à la main, je prends des crampes... ;)
 

zebanx

XLDnaute Accro
Bonjour Rémi_s, le forum

Pour faciliter la création de lien-hypertextes avec un répertoire identifié de mon disque dur :
- je liste tous les fichiers d'un répertoire (même dans les sous-répertoires)
- applique après une formule de lien-hypertexte dans une autre colonne puis la copie sur les autres lignes

Mais je ne sais pas si cela répond à votre question pour des fichiers partagés sous drive ou sous un répertoire partagés

Bons travaux
zebanx
 

Rémi_S

XLDnaute Nouveau
Bonjour,

Je vous remercie pour vos réponses.

Effectivement Zebanx, j'utilise la même façon de faire que toi. Sauf que en utilisant la fonction Hypertexte, on va chercher l'adresse du répertoire (C:\Users\Duchateau.... pour ton exemple). Et si tu déplaces l'ensemble du dossier(excel +documents liées), le lien ne suit pas automatiquement, il garde la même adresse de répertoire.

Alors que en faisant le lien manuellement, cela fonctionne.

Je n'arrive pas à reproduire automatiquement la fonction manuelle.


1697631161507.png
 

job75

XLDnaute Barbatruc
Dans un dossier j'ai créé 1500 fichiers CSV de 2 lignes (ça prend 32 secondes chez moi).

Puis dans le même dossier j'ai créé un fichier .xlsm et exécuté cette macro :
VB:
Sub Liens()
Dim t, chemin$, fichier$, lig&
t = Timer
chemin = ThisWorkbook.Path & "\"
fichier = Dir(chemin & "*.csv") '1er fichier du dossier
lig = 1
Application.ScreenUpdating = False
While fichier <> ""
    lig = lig + 1
    ActiveSheet.Hyperlinks.Add Anchor:=Cells(lig, 1), Address:=fichier
    fichier = Dir 'fichier suivant
Wend
MsgBox lig - 1 & " liens créés en " & Format(Timer - t, "0.00 \sec")
End Sub
Les 1500 liens sont créés en 0,17 seconde.

Edit : j'avais d'abord écrit Address:=chemin & fichier mais le chemin n'est pas nécessaire.
 
Dernière édition:

Rémi_S

XLDnaute Nouveau
Bonjour Job75,

Un grand merci pour ton retour !
Malheureusement, 3 contraintes :

J'ai des sous dossiers et des sous dossier de sous dossier, ect... : "la variable chemin n'est pas faisable"

De plus, j'ai des documents .PDF et des .tif

Et enfin, mon Excel est déjà créé et figé : l'ordre des documents dans les dossiers n'est pas le même que dans la colonne Excel : "incrémentage lig impossible"


Est ce que avec cela tu aurais une idée ?

Je te remercie.
 

job75

XLDnaute Barbatruc
Bonjour Rémi_S,
De plus, j'ai des documents .PDF et des .tif
Alors utilisez cette macro :
VB:
Sub Liens()
Dim t, chemin$, fichier$, lig&
t = Timer
chemin = ThisWorkbook.Path & "\"
fichier = Dir(chemin) '1er fichier du dossier
lig = Cells(Rows.Count, 1).End(xlUp).Row + 1
Application.ScreenUpdating = False
While fichier <> ""
    If Right(fichier, 4) = ".csv" Or Right(fichier, 4) = ".pdf" Or Right(fichier, 4) = ".tif" Then
        lig = lig + 1
        ActiveSheet.Hyperlinks.Add Anchor:=Cells(lig, 1), Address:=fichier
    End If
    fichier = Dir 'fichier suivant
Wend
MsgBox lig - 1 & " liens créés en " & Format(Timer - t, "0.00 \sec")
End Sub
J'ai des sous dossiers et des sous dossier de sous dossier, ect... : "la variable chemin n'est pas faisable"
Bah placez le fichier .xlsm successivement dans chaque dossier et sous-dossier à traiter, exécutez la macro.

A+
 

Discussions similaires

Réponses
5
Affichages
313
Réponses
21
Affichages
2 K

Statistiques des forums

Discussions
313 193
Messages
2 096 073
Membres
106 489
dernier inscrit
fabintou