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

Macros et VBA Excel Discussion :

Lien hypertexte relatif vs absolu en vba


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Octobre 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2018
    Messages : 7
    Par défaut Lien hypertexte relatif vs absolu en vba
    Bonjour à toutes et tous,

    J'ai cherché dans le forum si je trouvais une solution à mon problème... Nada... Rien. Je me permets donc ce post.

    Voici mon problème :

    Je souhaite créer un fichier excel qui me permettrait de pointer sur des images, photos, vidéos, etc. Une sorte de table de matière, ou de sommaire si vous préférez.
    L'idée étant de mettre dans chaque cellule un lien qui pointe sur la photo avec un nom explicite. A priori simple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For i = 1 to n 
    ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 10), Address:=lien, TextToDisplay:=nomvariable
    next i
    Le hic c'est que, quelle que soit l'adresse renseignée dans la variable lien, "./sous-repertoire" ou "../sous-repertoire" ou ".\sous-repertoire" ou ... bref... j'ai tout essayé, Excel me push le lien suivant "file:///\\adresseIPduserveur\nomdelamachine(associé à la lettre logique du serveur)\repertoire\fichier.jpg"

    Le lien est correctement créé, tout passe bien, sauf l'adresse. Je travaille en réseau.

    Mon objectif : forcer l'écriture d'un lien relatif qui pointe sur un sous-repertoire du répertoire dans lequel est enregistré mon fameux fichier excel.
    L'idée étant de pouvoir créer un pack zip avec tout ce qui faut à l'intérieur (le fichier excel + les fichiers images dans le sous-répertoire).


    Pour info j'ai essayé de mettre en ouverture de classeur le bout de code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Public Sub Workbook_Open()
        Application.DefaultWebOptions.UpdateLinksOnSave = False
    End Sub
    Rien à faire.

    Est-ce que quelqu'un à une idée ?

    D'avance un grand merci pour vos éclairages, pistes, idées, voire... solutions :-D

    Christophe.

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Je n'ai pas tout compris à ton problème mais je pense qu'il peut se résoudre sans VBA, en utilisant la fonction LIEN_HYPERTEXTE().
    https://support.office.com/fr-FR/art...7-7de9b76f577f

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Octobre 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2018
    Messages : 7
    Par défaut
    Bonjour Mehnir,

    Je confirme ça fonctionne très bien avec la fonction LIEN_HYPERTEXTE(./sous-repertoire/fichier.jpg;"cliquez ici).
    Compte-tenu des volumes je dois passer par VBA.
    Ca ne fonctionne pas.
    Le meme code vba préfixe le lien avec "file:///\\adresse IP du serveur\Mapage du serveur\chemin\"
    De sorte que mon lien devient : file:///\\adresse IP du serveur\Mapage du serveur\chemin\sous-repertoire\fichier.jpg"

    J'espère que c'est plus clair comme ça.

    Christophe.

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Ysthad Voir le message
    Compte-tenu des volumes je dois passer par VBA.
    Pourrais-tu expliquer pourquoi ?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Octobre 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2018
    Messages : 7
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Pourrais-tu expliquer pourquoi ?
    Oui. Bien sur. pardon. Plusieurs raisons à cela :

    • le volume encore que... ca pourrait passer avec une formule. J'atteinds les 50 000.
    • la répétition de la tâche. Une formule oblige des C/C avec tous les risques d'erreurs alors qu'un VBA c'est du clique bouton.
    • un vba permet de marquer dans le dur dans une cellule le résultat d'une formule vs avec une formule il faut faire un copier/collage spécial en valeur (on en est déjà à 2 C/C
    • la vitesse d'execution. Je passe par des array.
    • et puis je dois bien l'avouer. Je suis têtu. Ca m'énerve de ne pas comprendre où ça cloche.


    Voilà.
    Cdt,
    Christophe.

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Je ne sais pas si tu t'en es rendu compte, mais il est possible de mettre une formule comme premier argument de la fonction LIEN_HYPERTEXTE().

    Par exemple, si tu mets la racine des répertoire en A1 et que tes noms de fichiers (y compris avec des sous-répertoires) sont dans la colonne B, il est possible d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =LIEN_HYPERTEXTE($A$1&B1;"cliquer ici")
    et de recopier la formule 50 000 fois en deux clics, trois touches et un coup d'ascenseur.

Discussions similaires

  1. [Toutes versions] Conversion lien hypertexte relatif en absolu
    Par olabarbe dans le forum Excel
    Réponses: 6
    Dernier message: 08/04/2019, 16h22
  2. lien hypertexte relatif à la date du jour
    Par tomtommysurf dans le forum Débuter
    Réponses: 1
    Dernier message: 29/07/2009, 10h30
  3. [XL-2003] Lien hypertexte dans Mail généré via VBA excel
    Par jerem7w dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/06/2009, 16h12
  4. [A-2003] - avertissement sur lien hypertexte relatif
    Par antoinev2 dans le forum Sécurité
    Réponses: 2
    Dernier message: 31/10/2008, 08h56
  5. lien hypertext relatif
    Par gregoire747 dans le forum Modélisation
    Réponses: 2
    Dernier message: 05/02/2008, 05h26

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