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 hypertext + cellule texte [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 5
    Par défaut Lien hypertext + cellule texte
    Bonjour à toutes et à tous et d'avance merci pour ce site excellent!
    Pour des soucis de confidentialité, je n'ai msi en pieces jointes que des exemples.
    J'expose mon problème :
    Dans la colonne A, B et C résident des noms. Dans la D, des adresses vers des photos. Je souhaiterai connaitre une méthode pour créer un lien hypertext sur les 3 cellules correspondantes A, B et C avec l'adresse contenue dans D. Ex : le futur lien hypertext des cellules A1, B1 et C1 renvoient à l'image présente à l'adresse indiquée en D1. Il en ira de même pour les cellules A2, B2 et C2 qui renverront à l'image présente à l'adresse indiquée en D2.
    Existe-t'il une maccro afin de 'fusionner' les données d'adresses présentes en D et les noms présents en A, B et C afin de créer un lien hypertext? J'espère que oui!
    Si vous avez des idées, je suis preneur
    Fichiers attachés Fichiers attachés

  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
    Si j'ai bien compris
    Utilise la fonction LIEN_HYPERTEXTE
    En E1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =LIEN_HYPERTEXTE(D1;A1&" " &B1&" " &C1)
    Tu tire vers le bas

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 5
    Par défaut
    Merci pour cette reponse rapide!
    On doit etre sur la bonne voie mais ce n'est pas tout a fait ce que je souhaiterais avoir au final.
    Je vais essayer de m'exprimer correctement :

    - une fois la manip terminee, il ne me restera que la colonne A, B et C.
    - les liens hypertext crees de la cellule A1, B1 et C1 revoient a l'adresse qui etait presente en D1
    - les liens hypertext crees de la cellule A2, B2 et C2 revoient a l'adresse qui etait presente en D2
    - les liens hypertext crees de la cellule A3, B3 et C3 revoient a l'adresse qui etait presente en D3
    - etc...

    Par ex, en cliquant sur le lien 'poulet' ou 'blond' ou 'court', on accede a la photo 1 (J:\Photos\2011-11-17_11.36.11.jpg)

    En cliquant sur le lien 'chat' ou 'brun' ou 'long', on accede a la photo 2 (J:\Photos\20120721_204007.jpg)

    Etc...

    J'espere que je n'ai pas trop ete confus

    Desole pour les accents, je suis sur un clavier americain...

  4. #4
    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
    Essaies ce code
    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
    26
    27
    28
    Sub LienHyp()
    Dim LastLig As Long, i As Long
    Dim Fich As String
    Dim j As Byte
     
    Application.ScreenUpdating = False
    With Worksheets("Feuil1")                        'A adapter
        'Dernière ligne remplie de la colonne A
        LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
        'On boucle sur toutes les lignes
        For i = 1 To LastLig
            'Dans Fich, on a le chemin de l'image contenu dans la colonne D
            Fich = .Range("D" & i).Value
            'Si la cellule D n'est pas vide
            If Fich <> "" Then
                'Si le fichier existe bien sur le poste de travail (On peut éliminer cette condition)
                If Dir(Fich) <> "" Then
                    'On boucle sur les 3 colonnes A, B et C et on ajoute les liens hypertext
                    For j = 1 To 3
                        .Hyperlinks.Add Anchor:=.Cells(i, j), Address:=Fich, TextToDisplay:=.Cells(i, j).Value
                    Next j
                    'On efface la cellule D
                    .Range("D" & i).ClearContents
                End If
            End If
        Next i
    End With
    End Sub

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 5
    Par défaut
    Excellent!!!!
    Heureusement qu'il existe des passionnes dans des domaines comme celui-la!
    Mille merci!

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 5
    Par défaut
    J'ai malheureusement crié victoire trop vite...
    Ton dernier code fonctionne parfaitement sur l'exemple que j'avais mis en pièce jointe.
    En revanche, sur mon fichier excel définitif, j'ai un retour d'erreur de la part de VBA (voir image jointe Capture2).
    Je clique alors sur Débogage et VBA me surligne alors en jaune une ligne du code ( voir image jointe Capture1).
    Voilà ce que m'indique l'aide Excel sur l'erreur annoncée : Un argument dépasse probablement la plage des valeurs permises. Par exemple, la fonction Sin ne peut accepter que les valeurs comprises dans une certaine plage. Les arguments positifs inférieurs à 2 147 483 648 sont acceptés, tandis que 2 147 483 648 génère cette erreur.
    Vérifiez les plages permises pour les arguments.


    J'ai oublié de dire que dans le cas concret, les cellules contiennent des combinaisons de chiffres et de lettres comprenant des caractères spéciaux tels que - ou / ou encore \. Certaines cellules contiennent des nombres au format texte et certaines suites peuvent être assez longues...

    J'espère que tu pourras m'aider une fois de plus. On doit être si près de la solution!

    J'ai trouvé une piste!
    Les cellules contenant une combinaison de chiffre et de lettres sont traitées correctement par le code alors que les cellules ne contenant que du chiffre déclenche la fameuse erreur 5...
    Images attachées Images attachées   

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 09/04/2014, 07h31
  2. Lien hypertexte cellule Excel
    Par jcp66 dans le forum Excel
    Réponses: 1
    Dernier message: 15/03/2011, 17h13
  3. [AC-2002] Lien hypertexte en texte affiché
    Par anthurBB dans le forum VBA Access
    Réponses: 4
    Dernier message: 25/06/2009, 16h27
  4. [ liens hypertext ] cellule
    Par hocinema dans le forum Excel
    Réponses: 1
    Dernier message: 27/02/2008, 05h44
  5. [VBA-E] Affecter un lien hypertexte au texte d'un cellule
    Par yaya54 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/03/2006, 09h38

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