VBA excel activer lien hyprtexte

Résolu
Bonjour à toutes et à tous,

J'ai beau chercher et essayer, je ne trouve pas comment activer le lien de la cellule "cells(i,7)" de mon code.

Private Sub CommandButton1_Click() 
Dim LigneSelectionnée, n As String 
Dim i As Integer 

LigneSelectionnée = resultat.ListBox1.Value 
For i = 6 To 809 
    If CStr(Cells(i, 7).Value) = LigneSelectionnée Then 
        'Worksheets(1).Cells(i, 7).Select 
        'ActiveCell.Hyperlink.Follow NewWindow:=True 
        'Worksheets(1).Shapes(1).Hyperlink.Follow NewWindow:=True 
        n = "G" & CStr(i) 
        MsgBox n 
        'Range(n).Hyperlinks(1).Follow 
        'Range(n).Select 
        Range(n).Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True 
    End If 
Next i 
End Sub 


Donc ma procedure cherche dans les 803 cellules, celle qui à le meme nom que la valeur de la listbox. Dès que la case est trouvé, j'aimerai que le lien s'ouvre.

Merci d'avance pour votre aide.

Thordek

8 réponses

  1. re:

    Très difficile de me prononcer !

    Intuitivement, je dirais que c'est le lien lui-même qui est défectueux ?

    n.b. Évite les accents dans le code :

    Dim LigneSelectionnée

    Dim LigneSelectionnee

    Cette ligne ne spécifie pas le type de la variable [LigneSelectionnée]

    Dim LigneSelectionnée, n As String est l'équivalent de

    Dim LigneSelectionnée As Variant, n As String

    La variable [i] est de type Integer et devrait selon moi être de type Long

    Dim i As Integer

    Si tu regarde l'aide, tu trouveras :

    Cells(Row,Column).Value

    Propriété de Row -> [Type de données Long]

    Row, propriété
    Voir aussi S'applique à Exemple Détails Cette propriété renvoie le numéro de la première ligne de la première zone de la plage. Type de données Long en lecture seule.

    Il en est de même pour la propriété de [Column]

    Cdt

    Lupin
    1
    1. Merci, j'ai changé ça (les accents et les types).
      Le lien est ok car si je clique dessus ça me l'ouvre.
      Par contre, j'ai toujours ce problème.

      Je te remercie d'avoir passer un peu de temps dessus.

      Cordialement,

      Thordek
      0
  2. re:

    Sais-tu comment lancer ta procédure en mode pas à pas ?

    Ce serait bien de savoir sur quel ligne il plante !

    1.) Enleve la mention Private devant ta Sub

    2.) Ajoute un module à ton projet

    3.) Créer une sub pour appeller la procédure

    Option Explicit
    
    Sub TestMacro()
    
        Call Feuil1.CommandButton1_Click
        
    End Sub
    '
    


    4.) À partir du menu Excel

    // Menu / Outils / Macro / Macro...

    Sélectionner [TestMacro]

    Cliquer sur le bouton [Pas à pas détaillé]

    Utiliser la touche [F8] pour avancer pas à pas de façon détaillé !

    Repère la ligne où se situe l'erreur ?

    Cdt

    Lupin
    1
    1. ça y est :
      erreur d'execution ' 9 ' :
      L'indice ne correspond pas à la selection

      Ca veut dire quoi ça, c'est ce qui me fait galérer.

      Merci Lupin.

      Cdt,

      Thordek
      0
    2. Mais j'ai bien des liens sur les 803 lignes.
      0
  3. re:

    Peux-tu identifier à quel ligne l'erreur survient (Mode pas à pas)?

    L'erreur 9 indique souvent un dépassement de plage!

    Si tu peux localiser la ligne où l'erreur est provoqué
    il sera facile de solutionner :-)

    Cdt

    Lupin
    1
    1. oui, c'est la ligne suivante :
      Range(n).Hyperlinks(1).Follow AddHistory:=True
      0
  4. Bonjour,

    Enlever 1 paramètre !

    Range(n).Hyperlinks(1).Follow AddHistory:=True

    Cdt

    Lupin
    0
    1. Merci Lupin,

      ça marche bien mais ça bugg dés que i > 10. Tu sais pourquoi ?
      0
  5. re:

    essai ceci :

    au lieu de :
    n = "G" & CStr(i)
    MsgBox n

    met simplement ceci :

    n = "G" & i
    MsgBox n

    Cdt

    Lupin
    0
    1. Bonjour à Toi, Lupin, en cette nouvelle journée.

      Le problème ne vient pas de là, de mon point de vue.
      Explication :
      n = "G" & i
      Range(n).Hyperlinks(1).Follow AddHistory:=True

      et

      Cells(i, 7).Select
      Range(ActiveCell.Address).Hyperlinks(1).Follow

      me donnent le même résultat, les 4 premiers liens s'activent mais pas plus. J'en conclue que ce n'est pas la faute du "i".
      N'y-a-t-il pas un problème sur "Hyperlinks(1)". J'ai regardé s'il n'y avait bien qu'un seul lien par cellule, et c'est le cas.

      Cdt,

      Thordek
      0
  6. Bon,
    J'ai trouvé une solution (mais toujours pas pourquoi ça ne marche pas).

    Je crée le lien dont j'ai besoin, et seulement celui-là. Puis je l'active.

    Merci beaucoup Lupin, ça fait plaisir de recevoir de l'aide, et des pistes de reflexions.

    Bonne journée à tous le monde.

    Thordek
    0
    1. re:

      Il est clair que Excel retient certaines choses, exemple lorsqu'on
      nomme les cellules j'ai remarqué que les noms sont conservés
      même si on change ceux-ci.

      Tu pourra essayer de copier tes hyper-liens sur une nouvelle
      feuille, j'ai déjà solutionné plusieurs problème de cette façon.

      Bonne continuité

      @+

      Cdt

      Lupin
      0
      1. bonjour,

        j'aurai besoin de faire une macro qui me permette d'ouvrir un lien hypertexte.
        je m'explique:

        j'ai un dossier avec différentes photos. Dans une cellule de ma feuille j'aimerai rentrer un numéro qui m'ouvre le lien de la photo correspondante au numéro.

        merci pour vos réponses ! :)
        0