Macro lien hypertexte
s21imon06
Messages postés
107
Statut
Membre
-
cs_Le Pivert Messages postés 8437 Statut Contributeur -
cs_Le Pivert Messages postés 8437 Statut Contributeur -
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