IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Conception Discussion :

la copie d'un onglet vers un autre fichier modifie les liens hypertexte [XL-2016]


Sujet :

Conception

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2020
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2020
    Messages : 129
    Points : 73
    Points
    73
    Par défaut la copie d'un onglet vers un autre fichier modifie les liens hypertexte
    Bonjour,
    J'ai un des lien hypertexte dans plusieurs cellules d'un onglet.
    Je souhaite copier cet onglet vers un autre fichier, qui est rangé dans un autre répertoire, disons "repA".
    Je fais clic droit sur le titre de l'onglet, "déplacer ou copier", vers l'autre fichier, créer une copie.
    Et quand onglet arrive dans l'autre fichier, les liens hypertexte sont modifiés. Le chemin n'est plus le même et fait référence maintenant référence au chemin pour aller au repA.
    Inévitable? Une option à cocher quelque part?

    Merci d'avance
    Benoit

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 767
    Points : 28 626
    Points
    28 626
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    J'ai un des lien hypertexte dans plusieurs cellules d'un onglet.
    Ce lien est interne au classeur ou bien est-ce un lien externe ?
    Deuxième question est-ce un lien avec la fonction LIEN_HYPERTEXTE ou lien effectué à l'aide du clic droit
    Troisième question, le lien est dans une cellule ou un objet tel que bouton active x, dessin, etc. ?

    [EDIT]
    J'ai relu la demande et effectivement on parle de lien dans les cellules. Les deux premières questions restent ouvertes
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2020
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2020
    Messages : 129
    Points : 73
    Points
    73
    Par défaut
    Bonjour Philippe,
    Les liens dans le fichier source pointent vers d'autres fichiers (excel, pdf, jpg, easm...) et vers des répertoires différents que celui du fichier source.
    Ces liens sont générés via clic droit.
    Si c'est plus simple de gérer des liens créés avec LIEN_HYPERTEXTE, je peux les modifier, je n'en ai qu'une vingtaine.

    Cordialement

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 767
    Points : 28 626
    Points
    28 626
    Billets dans le blog
    53
    Par défaut
    Bonjour Benoît,
    L'avantage de la fonction LIEN_HYPERTEXTE c'est que l'on peut rendre des liaisons dynamiques sans passer par du VBA

    Une dernière question, les répertoires présents dans les liens, sont ils des sous-répertoires du répertoire où se trouve le classeur où se trouve le code VBA ?
    Si ce n'est pas le cas, ce sera plus problématique.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre régulier
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2020
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2020
    Messages : 129
    Points : 73
    Points
    73
    Par défaut
    Alors....
    J'utilise ce fichier comme un fichier source (une matrice de départ). Quand je l'ouvre, oui, les répertoires des liens sont des sous-répertoires du répertoire où est rangé mon fichier source.
    Mais je vais l'enregistrer sous un autre nom (offre-N) et dans un autre répertoire (Offres). Et là les répertoires des liens ne seront pas des sous-répertoires du répertoire Offres.

    A plus tard

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 767
    Points : 28 626
    Points
    28 626
    Billets dans le blog
    53
    Par défaut
    Bonjour Benoît,
    Alors je vais t'expliquer comment je travaille et après tu fais comme tu le souhaites.

    Prenons un exemple
    Le classeur où se trouve le code VBA, que lon nommera "Master" pour l'exemple est dans le répertoire principal, celui-ci pouvant se trouver n'importe où (sur le disque c, sur le réseau, dropbox, etc.)
    Dans ce répertoire, j'ai des sous-répertoires où se trouve les fichiers, images, etc. que je veux atteindre par liaison.

    La fonction LIEN_HYPERTEXTE a comme toutes les fonctionnalités de liaisons deux arguments(Le lien, le nom convivial)
    Il y a donc lieu de trouver un endroit (table de mappage) où placer ces deux arguments
    • Fichier INI
    • Tableau structuré avec au minimum deux colonnes (Le lien, le nom convivial)


    Pour l'exemple, je choisirai un tableau structuré, présent dans une feuille nommée [Param] en plage A4:B7 (voir image ci-dessous)
    On peut voir dans la liaison (2ème colonne) que les deux premiers fichiers se trouvent dans le sous-répertoires Divers et les deux autres dans le sous-répertoires xl2wd
    Le tableau structuré se nomme T_Link

    Nom : Hyperlink Mapping.png
Affichages : 70
Taille : 9,7 Ko


    Dans une feuille de mon classeur Master, je place ma fonction LIEN_HYPERTEXTE dans une feuille (Accueil)

    Exemple simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =LIEN_HYPERTEXTE(Param!B4;Param!A4)
    Exemple plus intéressant (En H7, on place le nom convivial)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =LIEN_HYPERTEXTE(RECHERCHEV(H7;T_Link;2;FAUX);RECHERCHEV(H7;T_Link;1;FAUX))
    Intérêt de l'utilisation des sous-répertoires, c'est qu'il suffit de déplacer le répertoire principal vers n'importe quel endroit et pour la liaison ce sera transparent

    La fonction LIEN_HYPERTEXTE offre bien d'autres avantages et ce sans une ligne de code VBA

    J'espère que cette explication est suffisamment claire et te permettra de résoudre ton problème.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Membre régulier
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2020
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2020
    Messages : 129
    Points : 73
    Points
    73
    Par défaut
    Philippe,
    J'ai réussi a reproduire ton exemple.
    J'ai saisie à la main les texte dans la colonne B de Tlink : y'a til une autre méthode?
    ça marche bien, tant que le fichier "master" reste dans un répertoire A et que les fichiers à atteindre sont, soit dans A, soit dans des sous-répertoire de A

    Par contre, si j'enregistre sous mon fichier dans un autre répertoire, B, qui est plus haut que A dans l'arborescence réseau : "impossible d'ouvrir le fichier spécifié"
    J'ai essayé de changer les textes dans la colonne B de Tlink, pour préciser un chemin en partant du répertoire B. Les liens fonctionnent depuis le nouveau fichier, mais pas depuis le master.

    Je pense que ce ne sera pas une surprise pour toi

    Je suis en train d'essayer avec un chemin qui démarre dès le serveur \\192.9.xxxx\.... J'ai l'impression que ça aide.
    Je vais faire d'autres tests dans la configuration finale de mes répertoires et j'espère m'en sortir.

    Sinon... a bientôt !
    Merci pour tout ça déjà.
    Benoit

  8. #8
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 767
    Points : 28 626
    Points
    28 626
    Billets dans le blog
    53
    Par défaut
    Bonjour Benoît,
    Par contre, si j'enregistre sous mon fichier dans un autre répertoire, B, qui est plus haut que A dans l'arborescence réseau : "impossible d'ouvrir le fichier spécifié"
    C'est bien la raison pour laquelle j'ai posé toutes ces questions.

    J'ai essayé de changer les textes dans la colonne B de Tlink, pour préciser un chemin en partant du répertoire B. Les liens fonctionnent depuis le nouveau fichier, mais pas depuis le master.
    Je pense que c'est possible en tout les cas en commande Dos on peut le faire mais je ne connais pas la syntaxe car j'impose à mes clients une certaine organisation (Répertoire & sous-répertoire). Cela permet comme évoqué dans mon explication que le changement du répertoire principal n'affecte pas l'application.

    Je viens de faire des tests avec ..\ ou .. mais cela ne fonctionne pas et une recherche rapide sur le net ne m'a pas donné de résultat satisfaisant.

    Dès que j'ai un peu de temps, j'approfondirai mais il est possible que d'ici là un autre contributeur trouve la solution.

    Je suis en train d'essayer avec un chemin qui démarre dès le serveur \\192.9.xxxx\.... J'ai l'impression que ça aide.
    Je vais faire d'autres tests dans la configuration finale de mes répertoires et j'espère m'en sortir.
    Si tu indiques le chemin complet cela fonctionnera mais tu perds tout l'avantage de la transparence de l'application et cela veut dire que si demain l'IT décide de changer le serveur (lettre, répertoire, etc.) ce sera la m....

    [EDIT]
    Bon ma syntaxe était correcte mais le nom de mon fichier était mal orthographié
    donc ..\NomFichier.xlsx placé comme argument dans la fonction ouvre bien le fichier qui se trouve dans le répertoire parent du répertoire où se trouve le classeur Master
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Macro Transfert d'onglets vers d'autres fichiers déjà existants
    Par Jean.Boutin dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/12/2017, 17h29
  2. [XL-2003] Copie d'un onglet vers un autre
    Par phal2ip dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 27/01/2015, 15h06
  3. Copie d'une macro vers un autre fichier
    Par canichon dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/11/2013, 18h00
  4. Copie d'une macro vers un autre fichier
    Par Bluchy dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/09/2013, 20h12
  5. Réponses: 7
    Dernier message: 16/08/2007, 10h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo