Problème Lien Hypertext
Résolu
reavok
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
A voir également:
- Excel impossible d'ouvrir le fichier spécifié
- Lien url - Guide
- Créer un lien pour partager des photos - Guide
- Lien copié ✓ - Forum Google Chrome
- Renommer un lien hypertexte ✓ - Forum Bureautique
- Verificateur de lien - Guide
6 réponses
Bonjour,
Tous les fichiers à ouvrir sont dans un seul répertoire?
Ce répertoire ne contient que ces fichiers à ouvrir?
Ces fichiers sont répertoriés dans ta feuille Excel?
Si oui, en qu'elle colonne?
Décris nous également ta feuille Excel... Qu'elle donnée trouve t'on et dans qu'elle colonne...
🎼 Cordialement,
Franck 🎶
Tous les fichiers à ouvrir sont dans un seul répertoire?
Ce répertoire ne contient que ces fichiers à ouvrir?
Ces fichiers sont répertoriés dans ta feuille Excel?
Si oui, en qu'elle colonne?
Décris nous également ta feuille Excel... Qu'elle donnée trouve t'on et dans qu'elle colonne...
🎼 Cordialement,
Franck 🎶
Bonjour pijaku,
alors :
Mon fichier .xls se présente avec plusieurs onglets comme suit;
1-Images, 2-vidéo et 3-audio, sur chaque onglet les colonnes se répartissent de façon identique ; A-Nom du créateur, B-Date de Création, C-Durée (pour les videos et audios), E-Nom du fichier (cette colonne me sert d'établissement de lien hypertext, en gros le nom du fichier à ouvrir doit être cliquable et exécutable) et dernière colonne F-Statut.
Tous les fichiers sont ouvrables et sont classés de la même façon. Ex : les fichiers images répertoriés en onglet 1-Images, sont rangés dans un dossier bien distinct des autres et se nomme 1-Fichiers images, il en va donc de même pour les autres fichiers répertoriés sur les autres onglets.
Mes fichiers .xls sont tous construits de la même façon mais n'ont pas le même nombre de lignes, cela peut aller de vingt à 3000.
J'arrive donc à faire la manip pour un fichier comportant une cinquantaine de ligne voire une centaine mais pour 3000. Je sais exécuter une manip qui ouvre le dossier cible mais pas plus.
Je trouve complètement fou que l'on ne puisse pas tout simplement créer un lien hypertext en ayant sélectionner la colonne au préalable puis de désigner le répertoire source des fichiers. Ca me chatouille un peuqu'on ait pas pensé à ce genre de possibilité sans passer par fonction "machpro" avec des codes zarbis. Pour un tableur de données de masse c'est balodpaille. :)
Comme tu peux l'imaginer je ne suis pas un utilisateur très affuté d'excell, perso je suis plus photoshop, illustrator et Indesign... ^^
J'ai essayé les fonctions =LIENHYPERTEXT.... mais soit je m'y prends mal ou je n'ai certainement pas bien compris les façons de procéder.
Bien entendu si je dois changer l'ordre de mes colonnes ce n'est pas un problème.
Si tu pouvais me donner une bonne astuce ça me ferait gagner un temps de ouf!
Merci d'avance
A+
alors :
Mon fichier .xls se présente avec plusieurs onglets comme suit;
1-Images, 2-vidéo et 3-audio, sur chaque onglet les colonnes se répartissent de façon identique ; A-Nom du créateur, B-Date de Création, C-Durée (pour les videos et audios), E-Nom du fichier (cette colonne me sert d'établissement de lien hypertext, en gros le nom du fichier à ouvrir doit être cliquable et exécutable) et dernière colonne F-Statut.
Tous les fichiers sont ouvrables et sont classés de la même façon. Ex : les fichiers images répertoriés en onglet 1-Images, sont rangés dans un dossier bien distinct des autres et se nomme 1-Fichiers images, il en va donc de même pour les autres fichiers répertoriés sur les autres onglets.
Mes fichiers .xls sont tous construits de la même façon mais n'ont pas le même nombre de lignes, cela peut aller de vingt à 3000.
J'arrive donc à faire la manip pour un fichier comportant une cinquantaine de ligne voire une centaine mais pour 3000. Je sais exécuter une manip qui ouvre le dossier cible mais pas plus.
Je trouve complètement fou que l'on ne puisse pas tout simplement créer un lien hypertext en ayant sélectionner la colonne au préalable puis de désigner le répertoire source des fichiers. Ca me chatouille un peuqu'on ait pas pensé à ce genre de possibilité sans passer par fonction "machpro" avec des codes zarbis. Pour un tableur de données de masse c'est balodpaille. :)
Comme tu peux l'imaginer je ne suis pas un utilisateur très affuté d'excell, perso je suis plus photoshop, illustrator et Indesign... ^^
J'ai essayé les fonctions =LIENHYPERTEXT.... mais soit je m'y prends mal ou je n'ai certainement pas bien compris les façons de procéder.
Bien entendu si je dois changer l'ordre de mes colonnes ce n'est pas un problème.
Si tu pouvais me donner une bonne astuce ça me ferait gagner un temps de ouf!
Merci d'avance
A+
Autre chose : colonne E-Nom du fichier Est ce que les extensions des fichiers (.jpg etc...) sont indiquées?
Dans l'attente des réponses aux deux questions, voici comment j'envisage les choses :
Pour créer la macro : Manipulations à ne réaliser qu'une seule fois !
1- Ouvrir un nouveau classeur Excel
2- Tapez Alt +F11
3- Insertion/Module
4- Copiez collez ce code :
5- Fermez la fenêtre Visual Basic For Application
6- Enregistrer sous :
=> Nom du fichier : Créer_Liens,
=> Type : Macros Complémentaires Excel 97-2003 (en bas de la liste)
7- Fermer Excel.
Pour utiliser la macro : Manipulations à réaliser à chaque exécution!
1- Ouvrez un des classeurs concernés
2- => Version Excel >= 2007 : Ruban, onglet développeur, cliquez sur Compléments
=> Version Excel < 2007 : menu Outils/Macros complémentaires
3- Cochez la case Créer_Liens
4- OK
5- => Version Excel >= 2007 : Ruban, onglet développeur Cliquez sur Macros
=> Version Excel < 2007 : Menu Outils/Macros/Macros
=> Toutes versions : tapez Alt + F8
6- Dans le nom de la macro, saisir : Creation_Liens puis cliquez sur Exécuter
Amélioration possible :
En cas d'absence d'un fichier, le lien hypertexte est créé quand même. Mais lors d'un clic dessus, vous aurez un message d'erreur. Il est possible de traiter ces cas pour, par exemple, ne pas créer de lien si le fichier n'existe pas...
Pour créer la macro : Manipulations à ne réaliser qu'une seule fois !
1- Ouvrir un nouveau classeur Excel
2- Tapez Alt +F11
3- Insertion/Module
4- Copiez collez ce code :
Sub Creation_Liens() Dim objShell As Object, objFolder As Object Dim Chemin As String, fichier As String Dim Lig As Long, DLig As Long Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&) If objFolder Is Nothing Then MsgBox "Abandon opérateur", vbCritical, "Annulation": Exit Sub Else Chemin = objFolder.ParentFolder.ParseName(objFolder.Title).Path & "\" End If DLig = Columns(5).Find("*", , , , xlByColumns, xlPrevious).Row For Lig = 2 To DLig fichier = Range("E" & Lig).Value ActiveSheet.Hyperlinks.Add Anchor:=Range("E" & Lig), Address:=Chemin & fichier, TextToDisplay:=fichier Next Lig End Sub
5- Fermez la fenêtre Visual Basic For Application
6- Enregistrer sous :
=> Nom du fichier : Créer_Liens,
=> Type : Macros Complémentaires Excel 97-2003 (en bas de la liste)
7- Fermer Excel.
Pour utiliser la macro : Manipulations à réaliser à chaque exécution!
1- Ouvrez un des classeurs concernés
2- => Version Excel >= 2007 : Ruban, onglet développeur, cliquez sur Compléments
=> Version Excel < 2007 : menu Outils/Macros complémentaires
3- Cochez la case Créer_Liens
4- OK
5- => Version Excel >= 2007 : Ruban, onglet développeur Cliquez sur Macros
=> Version Excel < 2007 : Menu Outils/Macros/Macros
=> Toutes versions : tapez Alt + F8
6- Dans le nom de la macro, saisir : Creation_Liens puis cliquez sur Exécuter
Amélioration possible :
En cas d'absence d'un fichier, le lien hypertexte est créé quand même. Mais lors d'un clic dessus, vous aurez un message d'erreur. Il est possible de traiter ces cas pour, par exemple, ne pas créer de lien si le fichier n'existe pas...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Voici le code modifié pour le souci d'extension... Pour l'installer suivre la démarche décrite ICI
🎼 Cordialement,
Franck 🎶
Sub Creation_Liens() Dim objShell As Object, objFolder As Object Dim Fichiers() As String Dim Chemin As String, nomFichier As String, fichier As String Dim Lig As Long, DLig As Long, Ind As Long Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&) If objFolder Is Nothing Then MsgBox "Abandon opérateur", vbCritical, "Annulation": Exit Sub Else Chemin = objFolder.ParentFolder.ParseName(objFolder.Title).Path & "\" End If 'récupération et stockage de tous les noms de fichiers du répertoire avec extension fichier = Dir(Chemin & "*.xls") Do While Len(fichier) > 0 ReDim Preserve Fichiers(Ind) Fichiers(Ind) = fichier Ind = Ind + 1 fichier = Dir() Loop DLig = Columns(5).Find("*", , , , xlByColumns, xlPrevious).Row For Lig = 2 To DLig nomFichier = Range("E" & Lig).Value For Ind = LBound(Fichiers) To UBound(Fichiers) If Fichiers(Ind) Like nomFichier & "*" Then ActiveSheet.Hyperlinks.Add Anchor:=Range("E" & Lig), Address:=Chemin & Fichiers(Ind), TextToDisplay:=nomFichier Exit For End If Next Ind Next Lig End Sub
🎼 Cordialement,
Franck 🎶
Hello,
A y est, j'ai essayé et là lors de l'exécution de la macro une fenêtre VBA s'ouvre et me dit :
Erreur d'exécution '9':
L'indice n'appartient pas à la sélection.
Je clique sur "débogage" pour voir... Le code de la Macro apparait est la ligne
For Ind = LBound(Fichiers) To UBound(Fichiers)
s'affiche en jaune.
C'est grave Docteur? ^^
Merci d'avance
A y est, j'ai essayé et là lors de l'exécution de la macro une fenêtre VBA s'ouvre et me dit :
Erreur d'exécution '9':
L'indice n'appartient pas à la sélection.
Je clique sur "débogage" pour voir... Le code de la Macro apparait est la ligne
For Ind = LBound(Fichiers) To UBound(Fichiers)
s'affiche en jaune.
C'est grave Docteur? ^^
Merci d'avance
Salut,
Erreur de débutant de ma part... J'ai fait des tests avec des fichiers excel (.xls) alors que toi, tu as besoin de tous types de fichiers...
Donc...
Lorsque le code fait ceci :
on obtient : Len(fichier) = 0 (car tu n'as pas de fichier Excel .xls dans ton répertoire...)
Et donc, la boucle pour remplir la variable tableau ne se fait pas car Len(fichier) = 0 :
Par conséquent, le code bug lorsqu'on lui demande de boucler sur le contenu d'une variable tableau vide...
Voici donc le code corrigé :
Avec mes excuses...
Erreur de débutant de ma part... J'ai fait des tests avec des fichiers excel (.xls) alors que toi, tu as besoin de tous types de fichiers...
Donc...
Lorsque le code fait ceci :
fichier = Dir(Chemin & "*.xls")
on obtient : Len(fichier) = 0 (car tu n'as pas de fichier Excel .xls dans ton répertoire...)
Et donc, la boucle pour remplir la variable tableau ne se fait pas car Len(fichier) = 0 :
Do While Len(fichier) > 0
Par conséquent, le code bug lorsqu'on lui demande de boucler sur le contenu d'une variable tableau vide...
For Ind = LBound(Fichiers) To UBound(Fichiers)
Voici donc le code corrigé :
Sub Creation_Liens() Dim objShell As Object, objFolder As Object Dim Fichiers() As String Dim Chemin As String, nomFichier As String, fichier As String Dim Lig As Long, DLig As Long, Ind As Long Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&) If objFolder Is Nothing Then MsgBox "Abandon opérateur", vbCritical, "Annulation": Exit Sub Else Chemin = objFolder.ParentFolder.ParseName(objFolder.Title).Path & "\" End If 'récupération et stockage de tous les noms de fichiers du répertoire avec extension fichier = Dir(Chemin & "*") 'ici on ne laisse que l'étoile pour tous types d'extension Do While Len(fichier) > 0 ReDim Preserve Fichiers(Ind) Fichiers(Ind) = fichier Ind = Ind + 1 fichier = Dir() Loop DLig = Columns(5).Find("*", , , , xlByColumns, xlPrevious).Row For Lig = 2 To DLig nomFichier = Range("E" & Lig).Value For Ind = LBound(Fichiers) To UBound(Fichiers) If Fichiers(Ind) Like nomFichier & "*" Then ActiveSheet.Hyperlinks.Add Anchor:=Range("E" & Lig), Address:=Chemin & Fichiers(Ind), TextToDisplay:=nomFichier Exit For End If Next Ind Next Lig End Sub
Avec mes excuses...
Ah une dernière petite chose par rapport à l'utilisation de cette magnifique macro ^^
En fait j'ai installé la macro directement sur le ruban et hop en un clic c'est fait!
Chose magique aussi c'est que même si on a envie de changer de place la colonne liée "E" en "A" ou autre, ben, ça fonctionne quand même...
Du grand Art jvoudi!
Bye
En fait j'ai installé la macro directement sur le ruban et hop en un clic c'est fait!
Chose magique aussi c'est que même si on a envie de changer de place la colonne liée "E" en "A" ou autre, ben, ça fonctionne quand même...
Du grand Art jvoudi!
Bye
Alors je vois bien la manip...
2 ou 3 choses :
-Lors de la création de la macro, ce qui me parait bizarre c'est de fermer la fenêtre vba avant d'enregistrer. Bon soit j'ai d'abord fais comme tu l'indiques.
-l'enregistrement du fichier doit se faire certainement dans un répertoire bien spécifique de windows/microsoft car quand j'exécute la macro, le logiciel ne me la trouve pas.
-En revanche j'ai essayé de créer cette macro en traitant un fichier contenant des données tests, les liens se font sans soucis en me demandant mon répertoire source. Mais à l'activation d'un lien une fenêtre s'ouvre et me dit "Impossible d'ouvrir le fichier spécifié".
Merci encore!
2 ou 3 choses :
-Lors de la création de la macro, ce qui me parait bizarre c'est de fermer la fenêtre vba avant d'enregistrer. Bon soit j'ai d'abord fais comme tu l'indiques.
-l'enregistrement du fichier doit se faire certainement dans un répertoire bien spécifique de windows/microsoft car quand j'exécute la macro, le logiciel ne me la trouve pas.
-En revanche j'ai essayé de créer cette macro en traitant un fichier contenant des données tests, les liens se font sans soucis en me demandant mon répertoire source. Mais à l'activation d'un lien une fenêtre s'ouvre et me dit "Impossible d'ouvrir le fichier spécifié".
Merci encore!
-Lors de la création de la macro, ce qui me parait bizarre c'est de fermer la fenêtre vba avant d'enregistrer. Bon soit j'ai d'abord fais comme tu l'indiques.
C'est normal, le projet VBA s'enregistre en même temps que le classeur auquel il appartient.
-l'enregistrement du fichier doit se faire certainement dans un répertoire bien spécifique de windows/microsoft car quand j'exécute la macro, le logiciel ne me la trouve pas.
En effet. L'enregistrement se fait dans le Add-ins de la suite Office. Le chemin d'accès est quelque chose comme : C:\Users\franck.nom\AppData\Roaming\Microsoft\AddIns
Mais à l'activation d'un lien une fenêtre s'ouvre et me dit "Impossible d'ouvrir le fichier spécifié".
ça ne le fait pas systématiquement?
Sinon retente de lancer à nouveau la macro...
C'est normal, le projet VBA s'enregistre en même temps que le classeur auquel il appartient.
-l'enregistrement du fichier doit se faire certainement dans un répertoire bien spécifique de windows/microsoft car quand j'exécute la macro, le logiciel ne me la trouve pas.
En effet. L'enregistrement se fait dans le Add-ins de la suite Office. Le chemin d'accès est quelque chose comme : C:\Users\franck.nom\AppData\Roaming\Microsoft\AddIns
Mais à l'activation d'un lien une fenêtre s'ouvre et me dit "Impossible d'ouvrir le fichier spécifié".
ça ne le fait pas systématiquement?
Sinon retente de lancer à nouveau la macro...