VBA excel activer lien hyprtexte

Résolu/Fermé
Thordek - Modifié par Thordek le 6/07/2011 à 12:21
 tonio69 - 28 mai 2014 à 10:38
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
A voir également:

8 réponses

Utilisateur anonyme
6 juil. 2011 à 15:11
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
thordek Messages postés 32 Date d'inscription mercredi 6 juillet 2011 Statut Membre Dernière intervention 12 septembre 2013 9
6 juil. 2011 à 16:06
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
Utilisateur anonyme
6 juil. 2011 à 16:21
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
thordek Messages postés 32 Date d'inscription mercredi 6 juillet 2011 Statut Membre Dernière intervention 12 septembre 2013 9
6 juil. 2011 à 16:55
ç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
thordek Messages postés 32 Date d'inscription mercredi 6 juillet 2011 Statut Membre Dernière intervention 12 septembre 2013 9
6 juil. 2011 à 17:01
Mais j'ai bien des liens sur les 803 lignes.
0
Utilisateur anonyme
6 juil. 2011 à 17:03
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
thordek Messages postés 32 Date d'inscription mercredi 6 juillet 2011 Statut Membre Dernière intervention 12 septembre 2013 9
6 juil. 2011 à 17:24
oui, c'est la ligne suivante :
Range(n).Hyperlinks(1).Follow AddHistory:=True
0
Utilisateur anonyme
6 juil. 2011 à 14:25
Bonjour,

Enlever 1 paramètre !

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

Cdt

Lupin
0
Merci Lupin,

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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
7 juil. 2011 à 00:08
re:

essai ceci :

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


met simplement ceci :

n = "G" & i
MsgBox n

Cdt

Lupin
0
thordek Messages postés 32 Date d'inscription mercredi 6 juillet 2011 Statut Membre Dernière intervention 12 septembre 2013 9
7 juil. 2011 à 09:21
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
thordek Messages postés 32 Date d'inscription mercredi 6 juillet 2011 Statut Membre Dernière intervention 12 septembre 2013 9
7 juil. 2011 à 10:43
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
Utilisateur anonyme
7 juil. 2011 à 13:01
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
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