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 dans cellule variable


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
    Inscrit en
    Mars 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2011
    Messages : 42
    Par défaut Lien hypertexte dans cellule variable
    Bonjour à tous,

    Je tente de créer un bout de macro qui demande de sélectionner un fichier, puis qui extrait son chemin pour le mettre sous forme de lien hypertexte dans une cellule.

    Pour l'instant j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim CheminPJ As String
    Chemin = Application.GetOpenFilename
    With Worksheets(1)
        .Hyperlinks.Add .Range("C38"), Chemin
    End With
    Et ça marche très bien.

    Le problème, c'est qu'en réalité je voudrais écrire non pas dans la cellule C38, mais dans la cellule qui est un cran à coté de ma cellule active.

    J'ai donc essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ActiveCell.Offset(0, 1).Activate
    With Worksheets(1)
        .Hyperlinks.Add .ActiveCells, Chemin
    End With
    Mais ça ne marche pas.
    J'imagine que .Hyperlinks.Add ne fonctionne qu'avec Range, mais comment faire alors?

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Worksheets(1)
        .Hyperlinks.Add ActiveCell.Offset(0,1), Chemin
    End With

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    J'utilise "Offset" pour me décaler verticalement et/ou horizontalement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim Chemin As String
    Chemin = Application.GetOpenFilename
    Hyperlinks.Add ActiveCell.Offset(0, 1), Chemin 'un cran à droite de la cellule active

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2011
    Messages : 42
    Par défaut
    Merci,

    effectivement ça fonctionne.

    Cependant le lien est "invisible". Je sais qu'il est dans la cellule car le curseur devient main lors du survol.
    En quand je clique dessus rien ne se passe

    vous sauriez pourquoi?

    au survol de la cellule, une bulle affiche l'adresse du fichier excel dans lequel on est, au lieu du fichier sélectionné

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Renseigne le paramètre "TextToDisplay" de la méthode "HyperLinks.Add"

  6. #6
    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
    Tu ne t'es pas emmêlé quelque part dans tes variables ? Dans ton premier exemple, il y a du cheminPJ et du chemin. Ça devrait marcher sinon.

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2011
    Messages : 42
    Par défaut
    Ok pour le nom de la variable et TextToDisplay.

    J'ai peut-être oublié de préciser qu'en réalité cette macro se fait dans deux sub différentes.

    Dans le sub d'un premier bouton j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Bp_PieceJointe_Click()
     
    Dim CheminPJ As String
    CheminPJ = Application.GetOpenFilename
    et dans le bouton valider du formulaire, qui permet d'ecrire tous les infos dans la feuille excel, j'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Worksheets(1)
        .Hyperlinks.Add ActiveCell.Offset(0, 1), CheminPJ, , , CheminPJ
    End With
    J'ai testé en mettant tout dans le premier sub, et ça marche. Mais je voudrais que si l'utilisateur appuie sur annuler dans mon formulaire, rien ne s'écrit sur la feuille. Donc je dois absolument séparer cette macro. Vous voyez ce que je veux dire?

  8. #8
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Essaie en précisant la feuille :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim Chemin As String
    Chemin = Application.GetOpenFilename
    With Sheets("Feuil1")
        .Hyperlinks.Add ActiveCell.Offset(0, 1), Chemin  'un cran à droite de la cellule active
    End With

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

Discussions similaires

  1. [XL-2010] AFFICHER LA CIBLE D'UN LIEN HYPERTEXTE DANS UNE CELLULE
    Par MALTER dans le forum Excel
    Réponses: 7
    Dernier message: 22/08/2013, 20h03
  2. Lien hypertexte dans la même cellule (proc report)
    Par Nirvana84 dans le forum ODS et reporting
    Réponses: 4
    Dernier message: 13/05/2011, 18h41
  3. Tester la présence de liens hypertexte dans des cellules Excel
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/11/2010, 00h27
  4. Réponses: 1
    Dernier message: 17/03/2009, 21h24
  5. Affichage lien hypertexte dans une cellule
    Par JACQUEMIN dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/12/2006, 10h36

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