| ||||||||
Petit astucien | Bonjour,
Je souhaiterais savoir s'il ait possible de créer un lien hypertexte sous EXCEL pour ouvrir un fichier qui peut se trouver à deux endroits différents. J'explique...
Le fichier que je souhaite ouvrir se trouve soit sur le réseau (Z:\dossier\...\2005\fichier.pdf) soit en local (C:\mondossier\...\2005\fichier.pdf) et je souhaiterais effectuer si possible un test logique qui tenterait d'ouvrir le fichier réseau et s'il ne trouve pas ce fichier, qu'il tente d'ouvrir le fichier local.
Comment faire (si possible!) ?
Par la formule LIEN_HYPERTEXTE, est-ce possible ?
Faut-il utiliser une macro ? Si j'ai pas le choix, comment faire cette macro et la reproduire rapidemment ?
Merci d'avance
Jéjé
[boom]
| |||||||
Publicité | ||||||||
| ||||||||
Astucien | question trÞs intÚressante et cela peut rÚpondre Ó certaines attentes donc Ó suivre ...
s¹rement avec des fonctions si dans la macro
Modifié par ritchi92 le 25/05/2005 13:23 | |||||||
Astucien ![]() | Bonjour,
Je ne connais pas Excel (trop cher pour moi...), mais avec Word il existe une mÚthode DriveExists, sans doute a-t-elle un Úquivalent sous Excel.
DriveExists, mÚthode
Description
Renvoie la valeur True si le lecteur spÚcifiÚ existe, False dans le cas contraire.
Syntaxe
object.DriveExists(drivespec)
La syntaxe de la mÚthode DriveExists comprend les ÚlÚments suivants :
?lÚment Description
object Correspond toujours au nom d'un objet FileSystemObject.
drivespec Une lettre dÚsignant un lecteur ou une spÚcification de chemin complÞte.
Remarques
Pour les lecteurs de supports amovibles, la mÚthode DriveExists renvoie True mÛme si le lecteur ne contient pas de support. Utilisez la propriÚtÚ IsReady de l'objet Drive pour dÚterminer si un lecteur est prÛt.
| |||||||
Petit astucien | Si je comprends bien, cela correspond Ó la syntaxe d'une macro mais comment appliquer cette macro Ó par exemple du texte dans Word (exemple : "cliquer sur lien").
Merci encore | |||||||
Astucien ![]() | Bonjour, bonjour JÚjÚ,
HonnÛtement, je ne sais pas.
Il doit y avoir moyen, par exemple, si la connexion au serveur se fait avant l'ouverture du document, de changer la lettre du drive et le chemin d'accÞs dans les hyperliens....
Bref yaka chercher, c'est ce que je vais faire [idee]... | |||||||
Astucien ![]() | Bonsoir Ó tous,
J'ai bricolÚ une macro qui, sous Word, peut servir de point de dÚpart pour rÚalisr la mise Ó jour d'hyperliens, selon qu'un disque rÚseau existe ou non. C'est un peu de l'Úpicerie, mais elle fonctionne.
En connaissant bien la gestion des hyperliens par Word, on devrait pouvoir trouver plus malin.
Par prudence, essayer sur une copie du document rÚel...
Sub ChangerDriveHyperlinks()
' Au dÚpart les hyperliens sont :
' - supposÚs pointer sur un lecteur rÚseau (E:).
' - Ûtre dÚfinis comme 'absolus' et non comme 'relatifs'.
' Si ce lecteur n'existe pas (identification par erreur dans command 'Dir'),
' le lecteur local (C:) est pris.
' Les caractÞres æ_Æ, utilisÚs pour le cadrage du texte, sont Ó supprimer
____Dim DriveHyperlinks As String
____Dim DriveHyperlinksLocaux As String
____Dim DriveHyperlinksRÚseau As String
____Dim CodeErreur As Integer
____Dim sWork As String
' DÚfinition des lecteurs rÚseau et local
____DriveHyperlinksLocaux = "C:"
____DriveHyperlinksRÚseau = "E:"
____DriveHyperlinks = DriveHyperlinksRÚseau
On Error GoTo MauvaisLecteur ' Si erreur d'accÞs, prendre
____sWork = Dir(DriveHyperlinks) ' le lecteur local (voir 'Mauvaislecteur')
On Error GoTo 0
' Rendre visibles les codes de champs
____ActiveWindow.View.ShowFieldCodes = True
' DÚbut du fichier
____Selection.HomeKey Unit:=wdStory
' Changer de 'RÚseau' en 'Local' (par exemple...) les lecteurs des hyperliens
____Selection.Find.ClearFormatting
____Selection.Find.Replacement.ClearFormatting
____With Selection.Find
________.Text = "hyperlink """ + DriveHyperlinksRÚseau
________.Replacement.Text = "hyperlink """ + DriveHyperlinks
________.Forward = True
________.Wrap = wdFindContinue
____End With
____Selection.Find.Execute Replace:=wdReplaceAll
' Masquer les codes de champs
____ActiveWindow.View.ShowFieldCodes = False
' Afficher les hyperliens pour vÚrifier
____For Each AHyperLien In ActiveDocument.Hyperlinks
________MsgBox AHyperLien.Name + vbCrLf + AHyperLien.Address
____Next AHyperLien
____End ' Sortir de la macro
____
MauvaisLecteur:
____CodeErreur = Err
____If CodeErreur = 52 Then ' Si le lecteur est inaccessible
________DriveHyperlinks = DriveHyperlinksLocaux ' prendre le lecteur local
________Resume Next
____Else
________MsgBox "Erreur >" + Error(CodeErreur) + "< sur commande ½Dir?."
____End If
End Sub
| |||||||
|
Les bons plans du moment PC Astuces | Tous les Bons Plans | ||||||||||||||||||
|