|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2006 Messages : 30 ![]() |
Bonjour.
Dans une formulaire (userform), je fais sélectionner un fichier par l'utilisateur puis je récupére le lien de ce fichier. Exemple : Y:\LeDossier\LeFichier.pdf Ensuite, dans une feuille Excel, j'insére ce lien sous forme de lien hypertexte afin que l'utilisateur puisse ouvrir ce fichier en un clic. Je fais une commande du type : Code :
Feuille.Hyperlinks.Add Anchor:=Feuille.Range("A5").Offset(i, 0), Address:=Formulaire.TextBox1.Value, TextToDisplay:=Formulaire.TextBox1.Value Si ce lien vient juste d'être créé, cela fonctionne. Si je ferme et je ré-ouvre le fichier, le lien est mort. Si j'enregistre le fichier, le lien est mort aussi. A l'ouverture, j'ai fait une boucle pour recréer tous les liens de la liste. Par contre pour l'enregistrement, je ne sais pas quoi faire. J'ai fait une boucle sur un événement du type "SelectionChange" mais l'utilisateur fait un premier clic, le lien ne fonctionne pas et ma boucle se lance. Cela fonctionnera qu'au deuxième clic. Comme je suis un peu perfectionniste, j'aimerais que cela fonctionne dès le premier et sans message d'erreur... J'ai détecté le problème à la fermeture du fichier et à l'enregistrement mais j'appréhende de le rencontrer dans d'autres cas de figure. Est-ce que quelqu'un peut m'aider? Me dire si je peux gérer autrement ces liens afin qui ne meurent pas. Ou alors, comment recréer le lien sur un SelectionChange avant qu'Excel essaye d'ouvrir celui existant mais mort? Je ne sais pas si je vais avoir des réponses avec un poste aussi long mais si vous avez pris le temps de me lire et encore mieux, de me répondre, je vous remercie très sincérement! Emmanuel. |
|
|
00
|
|
|
#2 |
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2006 Messages : 30 ![]() |
Pour ceux qui ont le même problème de lien hypertext pointant sur des disques réseau, voici l'alternative que j'ai trouvé :
Dans mon cas, l'utilisateur saisie plusieurs informations dans un formulaire (userform). Il peut aussi joindre un fichier aux info saisies. L'utilisateur sélectionne un fichier et je récupére le lien (exemple Y:\LeDossier\LeFichier.pdf) Une fois que l'utilisateur valide sa saisie, toutes les infos sont insérées dans un tableau pour faire une sorte de base de données. Dans ce tableau, j'insère purement et simple le lien dans une cellule SANS créer de lien hypertext. Lors de cette insertion de données, je mets une valeur dans une cellule pour bloquer l'événement Worksheet_SelectionChange de la feuille de mon tableau. Code :
Sheets("Variables").Range("A1").Value = "Inser" Code :
lngErr = ShellExecute(0, "OPEN", LienContenuDansLeTableau, "", "", 0) Au préalable, je vérifie que Target correspond qu'à une ceule est unique cellule pour éviter de planter la macro. Voilà, avec cette méthode, le lien ne meurt jamais même si le fichier est en réseau. Emmanuel. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com