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 :

VBA - Hypertexte à partir de la valeur active [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2011
    Messages : 26
    Par défaut VBA - Hypertexte à partir de la valeur active
    Bonjour à tous,

    Question rapide, mais pour laquelle je n'arrive à rien!
    J'aimerais "fabriquer" un lien hypertexte à partir d'un NOM enregistré ainsi que de la valeur de la cellule active.

    Exemple (c'est toujours plus simple ):

    A1 = "CF001"
    A2 = "CF939"
    A3 = "GHD45"
    etc...
    Le nom "chemin_fichier" contient: C:blabla/blabla/blabla
    Le nom "nom_fichier" contient la sélection: (A1:A3)

    Ainsi, en VBA je veux que pour chaque cellule de la sélection (A1:A3), ma macro crée un lien hypertexte de cette forme:
    C:blabla/blabla/blabla/CF001 (Pour la cellule A1)
    C:blabla/blabla/blabla/CF939 (Pour la cellule A2)
    C:blabla/blabla/blabla/GHD45 (Pour la cellule A3)

    J'ai essayé le code ci-dessous, mais je bloque à l'argument Adresse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
        With Worksheets("sheets1")
        Dim adresse As String
     
            Range("nom_fichier").Select
                For Each cell In Selection
                    adresse = ?????
                    ActiveSheet.Hyperlinks.Add Anchor:=cell, Address:=adresse
                Next
        End With
    Merci d'avance de votre aide!
    Maxime

    P.s. Petite question en parallèle sur les liens hypertextes. Est-ce que pour un lien Excel part de l’emplacement du fichier Excel actuel pour allez ouvrir un autre fichier si on n'indique pas de C:blabla/dossier/ficher? En d'autres mots, serait-il possible d'aller ouvrir un fichier en marquant simplement /dossier/fichier.jpg?

  2. #2
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    adresse = Range(chemin_fichier) & "\" & cell.Value
    Et pour ce qui est du chemin relatif, j'ai le code suivant à ajouter dans un module :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Option Explicit
     
    Public Function getAbsoluteFromRelativePath(strRelPath As String, actualPath As String) As String
     
    While Left(strRelPath, 3) = "..\"
        strRelPath = Right(strRelPath, Len(strRelPath) - 3)
        actualPath = getHigherLevel(actualPath)
    Wend
     
    If Left(strRelPath, 2) = ".\" Then strRelPath = Right(strRelPath, Len(strRelPath) - 2)
     
    getAbsoluteFromRelativePath = actualPath & "\" & strRelPath
     
    End Function
     
    Private Function getHigherLevel(strPath As String) As String
     
    Dim tabPath() As String
    tabPath = Split(strPath, "\")
    Dim n As Integer
    n = UBound(tabPath)
    ReDim Preserve tabPath(n - 1)
    getHigherLevel = Join(tabPath, "\")
     
    End Function
    Que l'on peut utiliser en faisant par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim completePath As String
    completePath = getAbsoluteFromRelativePath("..\..\Test", ThisWorkbook.Path)
    'ou
    completePath = getAbsoluteFromRelativePath(".\Test", ThisWorkbook.Path)

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2011
    Messages : 26
    Par défaut
    Que dire de plus?

    Merci! absolument, merci!
    C'est à 100% ce que je recherchais.

  4. #4
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Pas de problème. N'oublie pas de marquer ton sujet comme résolu et d'utiliser les "pouces" pour dire si les réponses te conviennent ou pas.
    Bonne journée

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/04/2011, 20h28
  2. [VBA-E]suppression lignes a partir d'une cellule active
    Par lio62 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 08/02/2007, 15h01
  3. [VBA] Obtenir l'index dans un tableau à partir de sa valeur.
    Par Julien Dufour dans le forum Access
    Réponses: 2
    Dernier message: 28/07/2006, 11h03
  4. Réponses: 5
    Dernier message: 09/09/2005, 17h51
  5. appel de fonction à partir d'une image activer/desactiver
    Par philippe123 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 23/08/2005, 16h26

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