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

cs_Gekco Messages postés 20 Date d'inscription mercredi 24 mars 2010 Statut Membre Dernière intervention 17 mai 2010 - 20 avril 2010 à 14:23
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 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

7 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
20 avril 2010 à 14:45
Bonjour,

Sur quelle ligne ?

0
cs_Gekco Messages postés 20 Date d'inscription mercredi 24 mars 2010 Statut Membre Dernière intervention 17 mai 2010
20 avril 2010 à 14:56
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
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
20 avril 2010 à 15:35
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 ?

0
cs_Gekco Messages postés 20 Date d'inscription mercredi 24 mars 2010 Statut Membre Dernière intervention 17 mai 2010
20 avril 2010 à 16:25
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 ?
0

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

Posez votre question
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
20 avril 2010 à 16:38
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.

0
cs_Gekco Messages postés 20 Date d'inscription mercredi 24 mars 2010 Statut Membre Dernière intervention 17 mai 2010
20 avril 2010 à 16:59
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
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
22 avril 2010 à 18:23
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

0
Rejoignez-nous