Erreur 438, Propriété ou méthode non gérée par cet objet : Lien hypertexte dans

Messages postés
20
Date d'inscription
mercredi 24 mars 2010
Statut
Membre
Dernière intervention
17 mai 2010
- - Dernière réponse : NHenry
Messages postés
14590
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 novembre 2019
- 22 avril 2010 à 18:23
Bonjour,

J'essai de faire apparaitre une colonne dans une listbox avec ses liens hypertextes. J'utilise le code ci-dessous :

Private Sub ListBox1_Click()
Dim Lien As String
Lien = UserForm1.ListBox1.Text
Dim i As Integer
i = 2
Worksheets("Feuil2").Select
Do While Cells(i, 1) <> ""
If Cells(i, 1).Value = Lien Then
Worksheets("Feuil2").Cells(i, 1).Hyperlinks.Items(1).Follow
Exit Sub
End If
i = i + 1
Loop
End Sub


Seulement, lorsque je clique sur la listbox en question j'ai une erreur "438, propriété ou méthode non gérée par cet objet"

Quelqu'un peut-il me renseigner ?

Merci

T
Afficher la suite 

7 réponses

Messages postés
14590
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 novembre 2019
136
0
Merci
Bonjour,

Sur quelle ligne ?

Commenter la réponse de NHenry
Messages postés
20
Date d'inscription
mercredi 24 mars 2010
Statut
Membre
Dernière intervention
17 mai 2010
0
Merci
A ce niveau la :

Worksheets("Feuil2").Cells(i, 1).Hyperlinks.Items(1).Follow


Sinon j'ai bien tenté d'écrire :

Private Sub ListBox1_Click()
Dim i As Integer

i = 2
Worksheets("Feuil2").Select
Do While Cells(i, 13) <> ""
If Cells(i, 13).Text = UserForm1.ListBox1.List(i) Then
Worksheets("Feuil2").Cells(i, 13).Hyperlink.Follow NewWindow:=True
Exit Sub
End If
i = i + 1
Loop
End Sub


Mais ça fonctionne tj pas.
A titre informatif, je rempli ma listbox par l'intermédiaire de ce code :

UserForm1.ListBox1.Clear

Dim aCC(0 To 2000, 0 To 50)
    For m = 1 To Sheets("Feuil2").Range("A65536").End(xlUp).Row
        If Not Sheets("Feuil2").Rows(m + 1).Hidden Then
                For t = 0 To Colonne + 1
                    aCC(m, t) = Sheets("Feuil2").Cells(m + 1, t + 1)
                Next t
        End If
    Next m
        
UserForm1.ListBox1.Clear
UserForm1.ListBox1.ColumnCount = Colonne
UserForm1.ListBox1.BoundColumn = 13
UserForm1.ListBox1.ColumnWidths = "20;20;20;20;25;150;150;150;50;50;50;50;50"
UserForm1.ListBox1.List() = aCC
UserForm1.Show
Commenter la réponse de cs_Gekco
Messages postés
14590
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 novembre 2019
136
0
Merci
Bonjour,

Sur quoi ça pose pb ?
Je veux dire :
Worksheets("Feuil2").Cells(i, 1).Hyperlinks
Worksheets("Feuil2").Cells(i, 1).Hyperlinks.Items(1)
Worksheets("Feuil2").Cells(i, 1).Hyperlinks.Items(1).Address
A partir de quel moment ça pose pb ?
(j'ai remplacer Follow par Address car Follow est une méthode, donc pas de retour visualisable)

Sinon, je ne comprend pas, follow est bien un membre de Hyperlink.

Sinon, dans ton code, tu as toujours :
Worksheets("Feuil2").Cells(i, 13).Hyperlink.Follow NewWindow:=True

Sans le .Item(1), c'est normal ?

Commenter la réponse de NHenry
Messages postés
20
Date d'inscription
mercredi 24 mars 2010
Statut
Membre
Dernière intervention
17 mai 2010
0
Merci
Re

Le code suivant que j'essai tant bien que mal de "trafiquer" (étant donné mon niveau débutant) ne débugue plus mais rien ne se passe :

Private Sub ListBox1_Click()
Dim Lien As String
Lien = UserForm1.ListBox1.Text
Dim i As Integer
i = 2
Worksheets("Feuil2").Select
Do While Cells(i, 13) <> ""
If Cells(i, 13).Value = Lien Then
Worksheets("Feuil2").Cells(i, 13).Hyperlinks.Item(13).Address
Exit Sub
End If
i = i + 1
Loop
End Sub


En réfléchissant, à ce que je veux atteindre, j'ai écris ce code "littéraire" :
"en cliquant sur la ligne i de ma listbox1 (Userform1.listbox1.list(i))
Suivre le lien hypertexte de la cellule (i, 13) de la feuil2"

J'ai donc tenté :

Dim I as integer

For i = 2 to 2000
Userform1.listbox1.list(i).Hyperlink.Address = Worksheet(?Feuil2?).Cells(i, 13).Hyperlink.Address
Next


Mais sans succès....
Que me conseils tu ?
Commenter la réponse de cs_Gekco
Messages postés
14590
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 novembre 2019
136
0
Merci
Bonjour,

Je crois que tu ne m'a pas compris, quand je parlais de voir la valeur, c'était en utilisant l'espion (Shift+F9, puis "Ajouter") afin de voir si la méthode est gérée et où ça coince.

Sinon, ta ligne :
Worksheets("Feuil2").Cells(i, 13).Hyperlinks.Item(13).Address

N'est pas bonne je pense :
- Adresse est une propriété, il faut en faire quelque chose
- .Item(13), tu as compris ce que signifiait le 13 dans ce cas ? Car je pense que c'est toujours .Item(1) qu'il faut utiliser.

Commenter la réponse de NHenry
Messages postés
20
Date d'inscription
mercredi 24 mars 2010
Statut
Membre
Dernière intervention
17 mai 2010
0
Merci
Je dois bien t'avouer que non je n'ai pas compris le .Items(13).
Je suis plutôt novice en VBA et donc je suis preneur pour toutes enseignements.

Concernant, mon soucis je ne comprend pas pourquoi le code ne marche pas et pourquoi les liens hypertextes n'apparaissent tj pas dans ma listbox ??

Si, tu pouvais me dire si je suis partie sur la bonne piste ou m'en conseiller une autre, je suis prêt à l'exploiter.

Merci en tout cas de me répondre.
(Je peux comprendre que pour des gens expérimentés c'est parfois barbant de répondre à des débutants).

T
Commenter la réponse de cs_Gekco
Messages postés
14590
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 novembre 2019
136
0
Merci
Bonjour,

Le .Item indique le numéro de l'élément à récupérer.

Worksheets("Feuil2").Cells(i, 13).Hyperlinks.Item(13).Address

Demande le 13ième lien de la cellule, je pense donc que
Worksheets("Feuil2").Cells(i, 13).Hyperlinks.Item(1).Address

serait plus logique.

Ensuite, Pour débugger la valeur :
http://www.cpearson.com/excel/debug.htm

Sinon, regarde aussi la valeur de :
Worksheets("Feuil2").Cells(i, 13).Hyperlinks.Count

Commenter la réponse de NHenry