Lien hypertexte et fichier temporaire crée par serveu

Bonjour,

Je m'appelle Yannick, je suis nouveau sur ce forum donc je souhaite bonjour à tous le monde pour commencer ! Et remercie d'avant toute les personnes qui prendrons le temps de m'aider à trouver une solution à mon problème .

PROBLEME n°1 : "SERVEUR et FICHIER TEMPORAIRE"

Je possède un fichier excel contenant une centaine de lien hypertexte ouvrant vers d'autre fichier nécessitant un autre logiciel très spécifique. Le problème est que le fichier Excel ainsi que tous les fichiers "liés" a ce fichier excel sont stocké sur un serveur qui extrait tout les fichiers dans un dosser temporaire dont le lien change sensiblement à chaque extraction.

Petit Résumé :

  • Je clique sur le serveur
  • Je demande l'ouverture de mon fichier excel
  • Le serveur crée un dossier temporaire sur mon ordinateur dont le numéro du dossier crée est aléatoire.
  • Le serveur copie le fichier excel ainsi que tous les fichiers cibles des liens hypertextes
  • Je me retrouve avec tout les liens excels qui ne fonctionne plus.

Ce qu'il me faut ce serai un moyen de changer les liens excels automatiquement via une macro.

PROBLEME n°2 : "OUVERTURE LIEN via NUMEROS CELLULE (ex : A1)

Le 2ème problème que j'aimerai savoir comment faire est le suivant. Peut-on coder sous VBA une ouverture de lien hypertexte via un emplacement de cellule ? J'ai crée une cellule appelons A1 avec la fonction LIEN.HYPERTEXTE(URL;Texte_Cellule) et j'aimerai via un clique de bouton VBA d'un UserForm qui ouvre le lien hypertexte via "A1"

Pour être plus clair :

- Ce code ci-dessous m'ouvre un lien :

ThisWorkbook.FollowHyperlink "C:\Dossier\MonFichier.doc#NomDuSignet", , True

Moi j'aimerai ça :

ThisWorkbook.FollowHyperlink "Worksheets("Final").Range("A1")", , True

J'espère que mes deux problèmes sont clair et merci encore de votre implication !

Bonjour,

1) Si je comprends bien ton fichier Excel dont le dossier est changeant s'ouvre ? Dans ce cas, le chemin du dossier peut être codé dans ce fichier de façon permanente par ThisWorkbook.Path

Pour ma part j'abonnerais donc les hyperliens au profit d'un code VBA...

2) Si le §1 fonctionne, cette question me paraît tomber d'elle-même (mais il est vrai que je ne raffole pas des hyperliens ! ). Mais dans tous les cas, l'idée d'un Userform serait une complication sans intérêt, quand on peut programmer des actions sur simple sélection des cellules concernées...

Cordialement.

1)La fonction d'extraction du serveur est normal ce n'est pas un problème. Le soucis concerne simplement le fait que a cause du système d'extraction, les liens hypertextes doivent être modifier constament.

Exemple :

J'ouvre une fois mon fichier excel depuis le serveur, celui-ci extrait le tout :

G:\BUTA\MAINT_SECTEUR\FMT\Suivi machines\Dossier1454\MesFavoris\

Je ferme le fichier excel et je rouvre une deuxième fois :

G:\BUTA\MAINT_SECTEUR\FMT\Suivi machines\Dossier1785\MesFavoris\

Et ça a chaque fois que j'ouvre le fichier depuis le serveur. Il me faudrai donc une ligne de code magique dans ThisWorkBook_open pour faire les changements qui vont bien sur les liens à chaques ouvertures

Peux-tu précisez ton idée ? si tu as une solution alternative je suis preneur !

2) En effet, mais pour le moment se serai la seule solution alternative que je pourrai avoir et qui est peut-être plus simple. Elle m'implique simplement de faire le changement manuellement avec une liste des liens dans un tableau, disons que au lieux de 20h de travail, j'en aurai pour 15min (mais bon c'est toujours 15min ahahaha).

Lis-tu ce qu'on t'écrit ? J'aurais quelques doutes !!

Relis ce que j'ai écrit... je l'illustre ci-dessous :

Sub Test()
    Dim chemin$, fichier$
    chemin = ThisWorkbook.Path & "\"
    fichier = "???" 'nom d'un fichier à ouvrir
    Workbooks.Open chemin & fichier
End Sub

Oui Je lis ce qu'on écrit.

Ci-joint le message d'erreur via une capture d'écran lorsque je tente d'ouvrir le fichier, visiblement excel refuse d'ouvrir certains types d'extensions ?

message d erreur

Normal ! apx, ce n'est pas un fichier Excel !

edit : A ce moment-là il faut utiliser la fonction Shell ou effectivement aussi un lien hypertexte...

Je possède un fichier excel contenant une centaine de lien hypertexte ouvrant vers d'autre fichier nécessitant un autre logiciel très spécifique

C'est bien ce que je disais, mes liens pointes vers un fichier .apx qui correspond a un logiciel appeler ASPEN Process Explorer.

Je reprécise que via un lien hypertexte cela fonctionne.

Le code fonctionne bien, il n'est pas possible de l'adapter pour faire en sorte qu'il ouvre autre chose que du Excel ?

edit : Je tente avec la fonction Shell

Sub test()
    Dim chemin$, fichier$
    chemin = ThisWorkbook.Path & "\"
    fichier = "H6010 VIB.apx" 'nom d'un fichier à ouvrir
    Shell ("C:\Program Files (x86)\AspenTech\APEx\Pe\ProcessExplorer.exe" & chemin & fichier)

End Sub

Nom de fichier introuvable, . Alors qu'il est bien à sa place. Le nom du fichier est juste et avec ou sans * ou .apx ... aucune différence

Manque une espace après exe...

Mais en jouant sur les fonctionnalités Windows :

Shell "explorer.exe " & chemin & fichier

Ceci fonctionne généralement : windows trouve tout seul le chemin de l'explorateur dans ses paramètres d'environnement et l'appel à l'explorateur fait jouer les associations de fichiers pour appeler l'application qui pourra l'ouvrir...

C'est presque bon !!

Lorsque je lance la macro via un bouton de commande d'un module je n'ai aucun problème, mais lorsque je copie colle la macro

Sub test10()
    Dim chemin$, fichier$
    chemin = ThisWorkbook.Path & "\"
    fichier = "H6010 VIB.apx" 'nom d'un fichier à ouvrir
    Shell "explorer.exe " & chemin & fichier

End Sub

Dans un bouton de mon userform :

 Private Sub CommandButton79_Click()
    Dim chemin$, fichier$
    chemin = ThisWorkbook.Path & "\"
    fichier = "H6010 huile 1.apx" 'nom d'un fichier à ouvrir
    Shell "explorer.exe " & chemin & fichier
End Sub

Alors la une fenêtre s'ouvre durant 1/10s et se referme automatiquement et rien. Je n'ai pas le temps de voir quoi que ce soit .

EDIT : J'ai trouvé le problème !!! Un soucis basique de problème de caractères !

Tout fonctionne parfaitement !

Mais est-il possible que le code puisse inclure de rechercher les sous dossiers eventuels ?

.SearchSubFolders = True 

du coup ça donnerai quelques choses comme ça ?

    Dim chemin$, fichier$
    chemin = ThisWorkbook.Path & "\"
    .SearchSubFolders = True
    fichier = "H6010 huile.apx" 'nom d'un fichier à ouvrir
        Shell "explorer.exe " & chemin & fichier

Ton point réfère à quel objet ?

Ecoute j'ai vraiment essayer je n'ai pas réussi à assigner le bon objet... j'ai potassé sur ce site : https://www.lecompagnon.info/vba-excel/vba_objetsExcel.htm

J'ai fait 200 test en remplaçant X nom d'object avant le . et sans succès.

chemin.SearchSubFolders = True

fichier.SearchSubFolders = True

shell.SearchSubFolders = True

folder.SearchSubFolders = True

application.SearchSubFolders = True

et d'autres ...xD

Bref je suppose que la réponse est basique mais je n'y arrive pas...désolé...

Essaie de ne pas faire tout et n'importe quoi !

chemin et fichier ne sont pas des objets, mais des variables de type String, c'est du texte...

Shell n'est pas un objet mais une fonction (utilisée sans récupération du résultat qu'elle renvoie).

Si SearchSubFolders est une méthode (que j'ignore) d'un quelconque objet, son utilisation implique de se référer explicitement à son objet.

Mais je ne vois pas ce que tu cherches à faire...

Private Sub H6010_Huile_Click()

Dim chemin$, fichier$

chemin = ThisWorkbook.Path & "\"

fichier = "H6010 huile.apx" 'nom d'un fichier à ouvrir

Shell "explorer.exe " & chemin & fichier

End Sub

Cette Macro me permet de rechercher le fichier "H6010 huile.apx" dans le même dossier que celui de mon fichier excel, MAIS si je crée un sous dossier et que je met le H6010 huile.apx dans le sous dossier, il ne me trouve pas le fichier.

Donc en bref :

Mon fichier excel est la :

C:\Users\YBERGE2\Desktop\Tableau de Surveillance\Tableau de Surveillance nouveau.xlsm

Si :

C:\Users\YBERGE2\Desktop\Tableau de Surveillance\H6010 Huile.apx =>>> ça marche

C:\Users\YBERGE2\Desktop\Tableau de Surveillance\FAVORIS\H6010 Huile.apx =>>> fichier introuvable

Du coup je suppose qu'il faut que j'arrive a rentrer cette fameuse ligne de code quelque part dans ma macro

Il me semblait que tu avais dit au départ que l'appel de ton fichier aboutissait à te flanquer tous les fichiers dans le même dossier créé... Maintenant si l'on te met le fichier principal (appelé) dans un dossier et les autres dans un sous-dossiers FAVORIS, il suffit de compléter le chemin pour pointer vers le sous-dossier.

La question me paraissait plus devoir s'orienter vers la façon d'utiliser ta liste de fichier pour déterminer le fichier à ouvrir en n'utilisant qu'une seule procédure d'ouverture...

Oui oui le départ était bien celui la ou tous les fichiers sont dans le même dossier

Rechercher des sujets similaires à "lien hypertexte fichier temporaire cree serveu"