Macro lien hypertexte
s21imon06
Messages postés
91
Date d'inscription
Statut
Membre
Dernière intervention
-
cs_Le Pivert Messages postés 7904 Date d'inscription Statut Contributeur Dernière intervention -
cs_Le Pivert Messages postés 7904 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je vous explique ma situation : je dois, pour le travail, créer un lien hyper texte dans une cellule d'un fichier qui se trouve dans un dossier. Je le fait donc manuellement (créer un lien hypertexte, parcourir etc ...).
Je suis débutant sur excel, mais je pense qu'il est possible de créer une macro qui me permet d'automatiser ça :
Je dispose dans ce tableur, d'une partie du nom du fichier (ex : j'ai dans une cellule "DOC001" et le fichier se nomme "DOC001 - Commande client"). Normalement je créer un lien hypertexte en allant chercher se fichier, toujours dans le meme dossier.
J'ai à faire ça pour 300 DOC donc un peu long....
Existe-t-il une macro pour automatiser cela, et que excel aille chercher le fichier qui contient le nom du doc ?
Merci d'avance
PS : j'ai déjà essayer la fonction lien hypertexte, qui ne fonctionne pas car le type de fichier à aller cherche est variable (.pdf, .doc, etc)
Je vous explique ma situation : je dois, pour le travail, créer un lien hyper texte dans une cellule d'un fichier qui se trouve dans un dossier. Je le fait donc manuellement (créer un lien hypertexte, parcourir etc ...).
Je suis débutant sur excel, mais je pense qu'il est possible de créer une macro qui me permet d'automatiser ça :
Je dispose dans ce tableur, d'une partie du nom du fichier (ex : j'ai dans une cellule "DOC001" et le fichier se nomme "DOC001 - Commande client"). Normalement je créer un lien hypertexte en allant chercher se fichier, toujours dans le meme dossier.
J'ai à faire ça pour 300 DOC donc un peu long....
Existe-t-il une macro pour automatiser cela, et que excel aille chercher le fichier qui contient le nom du doc ?
Merci d'avance
PS : j'ai déjà essayer la fonction lien hypertexte, qui ne fonctionne pas car le type de fichier à aller cherche est variable (.pdf, .doc, etc)
A voir également:
- Macro lien hypertexte
- Lien url - Guide
- Créer un lien pour partager des photos - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Renommer un lien hypertexte ✓ - Forum Bugs et suggestions
- Lien copié ✓ - Forum Google Chrome
1 réponse
Bonjour,
Mettre ce code dans un module:
Pour l'appeler a partir d'un bouton:
Mettre ce code dans un module:
'RECUPERATION REPERTOIRES ET NOMS DE FICHIERS DANS UN CLASSEUR 'office2007 Option Explicit Public chem As String Sub AfficheFichiersEtChemins() Dim LeChemin, LeMessage As String Dim Lextension As String Dim LeTitre As String Dim Arret As Boolean ' Pour éviter un "autochargement" des fichiers Range("a:a").ClearContents LeTitre = "Répertoires et sous-répertoires" Arret = False Application.ScreenUpdating = True Range("A1").Activate Do chem = ChoisirDossier If Len(chem) = 0 Then Arret = True Else If Mid(LeChemin, Len(chem), 1) <> "\" Then chem = chem + "\" End If If Len(Dir(chem, vbDirectory)) <> 0 Then Lextension = "*.*" Call Remplir(chem, Lextension) Arret = True Else LeMessage = "Répertoire introuvable...Recommencer ?" End If End If Loop Until Arret End Sub Private Sub Remplir(RepertParent, ExtFichier) ' Remplit la feuille courante avec le contenu du répertoire RepertParent ' Les noms de répertoires sont placés dans la colonne active à partir de ' la cellule active ' Les noms de fichiers correspondants à ExtFichier sont affichés dans la ' colonne de droite ' 14/02/2000 18:30, Gérard B, mpfe Dim Compteur As Integer Dim NbreRepert As Integer Dim LeFichier As String Dim LeDossier As String Dim ExtLocale As String Dim ParentLocal As String Dim LeDossierLocal() As String ExtLocale = ExtFichier LeFichier = Dir(RepertParent & ExtFichier) If Len(LeFichier) = 0 Then ActiveCell.Value = RepertParent ActiveCell.Offset(1, 1).Select End If Do While Len(LeFichier) <> 0 'ActiveCell.Value = (RepertParent & LeFichier) ActiveCell.Offset(1, 0).Select 'ActiveCell.Value = LeFichier ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _ chem & "\" & LeFichier, TextToDisplay:=LeFichier ' ActiveCell.Offset(0, 1).Select LeFichier = Dir Loop 'Compter le nombre de sous-répertoires NbreRepert = 0 LeDossier = Dir(RepertParent, vbDirectory) Do While LeDossier <> "" If LeDossier <> "." And LeDossier <> ".." Then If (GetAttr(RepertParent & LeDossier) _ And vbDirectory) = vbDirectory Then NbreRepert = NbreRepert + 1 End If End If LeDossier = Dir Loop ReDim LeDossierLocal(NbreRepert + 1) Compteur = 1 LeDossierLocal(Compteur) = Dir(RepertParent, vbDirectory) Do While LeDossierLocal(Compteur) <> "" If LeDossierLocal(Compteur) <> "." _ And LeDossierLocal(Compteur) <> ".." Then If (GetAttr(RepertParent & LeDossierLocal(Compteur)) _ And vbDirectory) = vbDirectory Then Compteur = Compteur + 1 End If End If LeDossierLocal(Compteur) = Dir Loop For Compteur = 1 To UBound(LeDossierLocal()) - 1 ParentLocal = RepertParent & LeDossierLocal(Compteur) & "\" Call Remplir(ParentLocal, ExtLocale) Next End Sub Function ChoisirDossier() Dim objShell, objFolder, chemin As String, SecuriteSlash Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.BrowseForFolder(&H0&, "Choisissez un répertoire", &H1&) On Error Resume Next chemin = objFolder.Items.Item.Path SecuriteSlash = InStr(objFolder.Title, ":") If SecuriteSlash > 0 Then chemin = Mid(objFolder.Title, SecuriteSlash - 1, 2) & "" End If ChoisirDossier = chemin End Function
Pour l'appeler a partir d'un bouton:
Private Sub CommandButton1_Click() AfficheFichiersEtChemins End Sub