Problème Lien Hypertext
Résolu/Fermé
reavok
Messages postés
16
Date d'inscription
lundi 27 octobre 2014
Statut
Membre
Dernière intervention
28 novembre 2015
-
27 oct. 2014 à 17:59
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 29 oct. 2014 à 16:18
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 29 oct. 2014 à 16:18
A voir également:
- Excel impossible d'ouvrir le fichier spécifié
- Lien url - Guide
- Créer un lien pour partager des photos - Guide
- Verifier un lien - Guide
- Cliquez sur ce lien. en n'utilisant que le clavier, quel mot obtenez-vous ? ✓ - Forum souris / Touchpad
- Aucune application permettant d'ouvrir ce lien n'a été trouvée - Forum Mobile
6 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
Modifié par pijaku le 28/10/2014 à 08:29
Modifié par pijaku le 28/10/2014 à 08:29
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 🎶
reavok
Messages postés
16
Date d'inscription
lundi 27 octobre 2014
Statut
Membre
Dernière intervention
28 novembre 2015
28 oct. 2014 à 10:08
28 oct. 2014 à 10:08
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+
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
28 oct. 2014 à 10:16
28 oct. 2014 à 10:16
Qu'elle version d'Excel as tu?
reavok
Messages postés
16
Date d'inscription
lundi 27 octobre 2014
Statut
Membre
Dernière intervention
28 novembre 2015
28 oct. 2014 à 15:00
28 oct. 2014 à 15:00
2007
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
28 oct. 2014 à 10:33
28 oct. 2014 à 10:33
Autre chose : colonne E-Nom du fichier Est ce que les extensions des fichiers (.jpg etc...) sont indiquées?
reavok
Messages postés
16
Date d'inscription
lundi 27 octobre 2014
Statut
Membre
Dernière intervention
28 novembre 2015
28 oct. 2014 à 14:43
28 oct. 2014 à 14:43
Non les extensions ne sont pas mentionnées quelles soient jpg ou amr
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
28 oct. 2014 à 14:49
28 oct. 2014 à 14:49
Ouille...
Je revois ma copie alors...
Je revois ma copie alors...
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
28 oct. 2014 à 10:55
28 oct. 2014 à 10:55
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
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
Modifié par pijaku le 28/10/2014 à 15:06
Modifié par pijaku le 28/10/2014 à 15:06
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 🎶
reavok
Messages postés
16
Date d'inscription
lundi 27 octobre 2014
Statut
Membre
Dernière intervention
28 novembre 2015
29 oct. 2014 à 11:16
29 oct. 2014 à 11:16
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
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
29 oct. 2014 à 13:31
29 oct. 2014 à 13:31
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...
reavok
Messages postés
16
Date d'inscription
lundi 27 octobre 2014
Statut
Membre
Dernière intervention
28 novembre 2015
29 oct. 2014 à 15:00
29 oct. 2014 à 15:00
Alors là, je dis "Chapeau bas Monsieur!"
Ça marche nickel
C'est exactement ce qu'il me faut.
Magique!
Merci beaucoup.
Merci pour la réactivité, ton temps passé et le résultat! Du grand art!
A+
Ça marche nickel
C'est exactement ce qu'il me faut.
Magique!
Merci beaucoup.
Merci pour la réactivité, ton temps passé et le résultat! Du grand art!
A+
reavok
Messages postés
16
Date d'inscription
lundi 27 octobre 2014
Statut
Membre
Dernière intervention
28 novembre 2015
29 oct. 2014 à 15:31
29 oct. 2014 à 15:31
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
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
29 oct. 2014 à 16:18
29 oct. 2014 à 16:18
De rien.
ça fait plaisir de lire ton ... plaisir!
A bientôt.
Franck
ça fait plaisir de lire ton ... plaisir!
A bientôt.
Franck
reavok
Messages postés
16
Date d'inscription
lundi 27 octobre 2014
Statut
Membre
Dernière intervention
28 novembre 2015
28 oct. 2014 à 15:40
28 oct. 2014 à 15:40
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!
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
28 oct. 2014 à 15:46
28 oct. 2014 à 15:46
-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...
reavok
Messages postés
16
Date d'inscription
lundi 27 octobre 2014
Statut
Membre
Dernière intervention
28 novembre 2015
28 oct. 2014 à 18:52
28 oct. 2014 à 18:52
Super! merci de répondre aussi rapidement!
Je teste le "bazar" demain et te tiens au courant
merci encore
Je teste le "bazar" demain et te tiens au courant
merci encore