VBA excel activer lien hyprtexte

Résolu
Thordek -  
 tonio69 -
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. Utilisateur anonyme
     
    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. thordek Messages postés 37 Statut Membre 9
       
      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. Utilisateur anonyme
     
    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. thordek Messages postés 37 Statut Membre 9
       
      ç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. thordek Messages postés 37 Statut Membre 9
       
      Mais j'ai bien des liens sur les 803 lignes.
      0
  3. Utilisateur anonyme
     
    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. thordek Messages postés 37 Statut Membre 9
       
      oui, c'est la ligne suivante :
      Range(n).Hyperlinks(1).Follow AddHistory:=True
      0
  4. Utilisateur anonyme
     
    Bonjour,

    Enlever 1 paramètre !

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

    Cdt

    Lupin
    0
    1. Thordek
       
      Merci Lupin,

      ça marche bien mais ça bugg dés que i > 10. Tu sais pourquoi ?
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Utilisateur anonyme
     
    re:

    essai ceci :

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

    met simplement ceci :

    n = "G" & i
    MsgBox n

    Cdt

    Lupin
    0
    1. thordek Messages postés 37 Statut Membre 9
       
      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
  7. thordek Messages postés 37 Statut Membre 9
     
    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
  8. Utilisateur anonyme
     
    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
  9. tonio69
     
    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