Lien hypertexte qui plante : "Impossible d'ouvrir le fichier spécifié"

dionys0s

XLDnaute Impliqué
Bonsoir le forum

Nouveau problème ! Youpi ! :p

Je fais un copier/coller par macro d'une feuille d'un classeur vers celle d'un autre classeur. En colonne A de la sélection copiée se trouve un texte avec un lien hypertexte qui fonctionne.
Une fois la sélection collée, le lien hypertexte s'affiche bien quand on passe la souris dessus, mais quand on clique dessus, le message d'erreur "impossible d'ouvrir le fichier spécifié" s'affiche :confused:

Promis j'ai cherché sur le net, jusqu'à tomber sur ce topic et j'aimerais savoir si c'est vraiment vrai (à savoir qu'un lien hypertexte déplacé déconne systématiquement dans la cellule cible). Et si, comme je l'espère :)rolleyes:), ce n'est pas vrai, quelles solutions ai-je pour remédier à cet épineux problème ?

D'avance merci pour votre aide

[Edit] Les liens hypertexte sont des .pdf ou des .xls sur le réseau
 
Dernière édition:

ballmaster

XLDnaute Occasionnel
Re : Lien hypertexte qui plante : "Impossible d'ouvrir le fichier spécifié"

bsoir,

décidément, on est des maffrés tous les 2 !!:)

J'ai été confronté au même pb sur des liens hypertextes qui ne fonctionnent plus suite à une copie d'une feuille vers un autre classeur. Et c'était sans macro.

J'ai du repassé sur chaque lien et les recréer.:eek:

C'est vraiment la grosse loose cette histoire.

Je crois malheureusement que la messe est dite

Bon courage quand même
 

dionys0s

XLDnaute Impliqué
Re : Lien hypertexte qui plante : "Impossible d'ouvrir le fichier spécifié"

Re Ballmaster

No way ! Je m'y colle j'ai peut-être une idée en tête :rolleyes:
Enfin je suis pas certain d'y arriver donc si quelqu'un a une/des piste(s) je suis preneur.
 

dionys0s

XLDnaute Impliqué
Re : Lien hypertexte qui plante : "Impossible d'ouvrir le fichier spécifié"

Re le forum

je commence à désespérer.
J'ai trouvé (et compris et adapté) un code d'extraction de lien hypertexte que voici :
Code:
Sub extraction ()

Dim Cell As Range
On Error Resume Next
For Each Cell In Range("A1:A" & Range("A65536").End(xlUp).Row)
Cell.Offset(0, 16) = Cell.Hyperlinks(1).Address
Next Cell

End Sub

Je le fais tourner dans mon fichier source, il marche mais il y a un hic :
Malheureusement il ne renvoit pas l'intégralité du lien hypertexte...

Suis-je vraiment condamné ?
 

dionys0s

XLDnaute Impliqué
Re : Lien hypertexte qui plante : "Impossible d'ouvrir le fichier spécifié"

Re le forum

Bon ! MJ13 désolé je n'ai pas trouvé via ton lien. Mais j'ai réussi à pondre quelquechose et j'aimerais avoir votre avis éclairé dessus.

Voici mon code :

Code:
Sub RemiseEnFormeLiensHypertextes()

'la macro s'exécute dans le fichier cible et ne touche pas au fichier source

Dim Cell As Range

Dim CheminAchats As String
ChDir (ThisWorkbook.Path)
ChDir ".."
CheminAchats = CurDir(ThisWorkbook.Path) 'renvoit la partie tronquée du lien hypertexte du fichier

On Error Resume Next

For Each Cell In Range("A2:A" & Range("A65536").End(xlUp).Row) 'exclut la cellule A1 qui contient un titre de colonne

Cell.Offset(0, 16) = CheminAchats & Cell.Hyperlinks(1).Address 'renvoit le chemin complet (mais erroné puisqu'il y a "\..\..\" au milieu) dans une cellule vide de la même ligne

Cell.Offset(0, 16).Replace What:="..\..", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False 'pour enlever "..\.." et avoir le chemin exact dans la cellule

AdresseCorrecte = Cell.Offset(0, 16).Value
Set objLink = ActiveSheet.Hyperlinks.Add(Cell, AdresseCorrecte) 'remplacement du lien dans la cellule cible

Cell.Offset(0, 16).ClearContents 'suppression du lien en texte

Next Cell

End Sub

c'est un peu abracadabrantesque mais ça fonctionne. Enfin pas complètement. Pas de bug à l'execution mais j'ai un lien qui ne fonctionne pas (Serveur ou proxy Internet introuvable qu'il me dit !). Je vais essayer de trouver l'erreur.

Mais j'aimerais avoir votre avis sur le code. Je n'arrive pas à squizzer l'étape où j'écris le chemin correct dans une cellule vide. Et puis si vous voyez une faiblesse ou une faille let me know ^^

Bonne journée à toutes et à tous !
 

YANN-56

XLDnaute Barbatruc
Re : Lien hypertexte qui plante : "Impossible d'ouvrir le fichier spécifié"

Bonjour Bonjour Dyonisos, Ballmaster, Michel, et à ceux qui passeront par ici

De mon coté, ceci fonctionne sans lien Hypertexte, mais avec un bouton sur la feuille.

Private Sub CommandButton1_Click()
Workbooks.Open (ActiveCell.Text)
End Sub

Mais ceci ne fonctionne que pour les ".xls" ... A voir.

Si vous manipuler un peu plus VBA:
Avec une liste dressée dans un USF, plus besoin de se soucier
de ces fichus liens, et tout format s'ouvre.

Amicalement.

Yann
 

MJ13

XLDnaute Barbatruc
Re : Lien hypertexte qui plante : "Impossible d'ouvrir le fichier spécifié"

Re , Bonjour Yann


Dionysos: sur ta macro du post #7, je ne pourrais pas te répondre (je considère qu'il vaut mieux trouver la source du problème que de se colletiner une macro qui peut-être ne fonctionnera pas demain).

Pour ce genre de problème as tu testé la solution dans ce post (il me semble qu'il faille aller dans les options):

https://www.excel-downloads.com/threads/lien-hypertexte-sur-lecteurs-reseaux.147690/

Sinon, il faut tester. Si tu copies le lien vers un autre classeur, est-ce que tu peux ouvrir le fichier de suite et après avoir quitté Excel. Tu peux ausssi tetser sur un fcihier sur ton Disque dur.

Enfin, si c'est un bug, c'est à toi de déterminer la meilleure solution.
 
Dernière édition:

dionys0s

XLDnaute Impliqué
Re : Lien hypertexte qui plante : "Impossible d'ouvrir le fichier spécifié"

Rebonjour tout le monde, bonjour Yann

C'est bon j'ai complètement solutionné mon problème. A l'attention de celles et ceux qui passeront dans le coin, voici le détail du problème.

J'ai des classeurs enregistrés à plusieurs endroits sur le réseau de l'entreprise qui contiennent des données que je dois centraliser, et notemment des liens hypertexte. Ces liens hypertexte renvoient vers des classeurs ou des pdf eux meme enregistrés sur le réseau.

Dans le fichier centralisateur, une boucle ouvre les classeurs et collecte toutes les données. Le problème : les données sont bien collectées, mais les liens hypertexte ne fonctionnent plus. Lorsqu'on clique dessus, le message d'erreur renvoyé est "Impossible d'ouvrir le fichier spécifié". Pourtant en passant la souris sur la cellule, on voit que le lien hypertexte existe, et est le bon.

Avec ce code :
Code:
FinChemin = Range("A1").Hyperlinks(1).Address
j'extrais le chemin. Seulement il ne récupère que la fin du lien, à partir d'un répertoire (toujours le même). Pour récupérer la première partie du chemin j'utilise ce code :
Code:
Dim DébutChemin As String
DébutChemin = Left(ActiveWorkbook.Path, InStrRev(ActiveWorkbook.Path, "\", -1, 1) - 1)

Je concatène, je rajoute un slash, et redéfini le lien hypertexte à l'aide du résultat de la concaténation :
Code:
Set objLink = ActiveSheet.Hyperlinks.Add(Range("A1"), DébutChemin & "\" & FinChemin)

Le tout mis dans ma boucle d'actualisation et ça fonctionne. Bon ici j'ai mis le code pour A1, mais en vrai de vrai, c'est pour toute une colonne, donc dans une boucle.

J'avais bien lu le post que tu me suggerais MJ13, mais n'ai pas compris ni trouvé dans les options comment désactiver la mise à jour des lien à l'enregistrement. Ceci dit il faudra que j'essaie. Si ça m'évite une boucle pourquoi pas !

Yann je n'ai pas opté pour ta solution, puisqu'il y a des pdf dans mes hypertexte.

Enfin voilà. J'arrête le spammage pour ce thread. Merci beaucoup à tous pour votre aide, votre patience, vos conseils. Ils m'ont étés fort utiles.

Bonne soirée à tous.
(Edit : modification de la formule du deuxième code)
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 009
Membres
101 865
dernier inscrit
MLL