Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Hyperlink dans une ComboBox

  • Initiateur de la discussion FlashVB
  • Date de début
F

FlashVB

Guest
Bonjour à tous :

Voilà la problématique :

Sur la page "Accueil", dans une combo. les items sont les autres feuilles du classeur sous format hypertexte. Le code est le suivant, mais celà ne passe pas...voyez-vous le pb ?

Sub ButtonGO_Click()
Dim link As String
If Sheets("ACCUEIL").ComboBox1.ListIndex = -1 Then Exit Sub
ActiveWorkbook.FollowHyperlink Address:=link, NewWindow:=True
End Sub

Merci.

FlashVB
 
@

@+Thierry

Guest
Bonjour FlashVB, le Forum,

Je ne saisi pas vraiment pourquoi tu veux faire des Hyperlinks dans une ComboBox pour "naviguer" à l'intérieur d'un classeur...

En fait, j'ai essayé :
Dim Link As String
If Me.ComboBox1.ListIndex = -1 Then Exit Sub
Link = Me.ComboBox1 & "!A1"
ActiveWorkbook.FollowHyperlink Address:="", SubAddress:=Link

Mais VBA me retourne une erreur 5 "Invalid Procedure Call ou Argument", car l'Adresse est vide...

A mon avis si tu fais, par exemple ceci, tu n'as pas besoin d'hyperlink pour obtenir le même résultat :

Private Sub Worksheet_Activate() 'ou bien un autre évènement pour initialiser ta ComboBox
Dim WS As Worksheet
For Each WS In Sheets
Me.ComboBox1.AddItem WS.Name
Next
End Sub

Private Sub ComboBox1_Click()
If Me.ComboBox1.ListIndex = -1 Then Exit Sub
Sheets(CStr(Me.ComboBox1)).Activate
End Sub

Bonne Soirée
@+Thierry
 
F

FlashVB

Guest
Salut ,

Le classeur comporte des feuilles avec graphiques et d'autres avec des tableaux de données. Dans le premier cas; tout se passe OK avec le script mais bof dans le second, cela ne fonctionne pas...??????


Private Sub Worksheet_Activate() 'ou bien un autre évènement pour initialiser ta ComboBox
Dim WS As Worksheet
For Each WS In Sheets
Me.ComboBox1.AddItem WS.Name
Next
End Sub

Private Sub ComboBox1_Click()
If Me.ComboBox1.ListIndex = -1 Then Exit Sub Sheets(CStrMe.ComboBox1)).Activate
End Sub

Bonne journée

FlashVB
 
@

@+Thierry

Guest
Salut Flash, le Forum

Huum, je ne sais comment l'affichage se fait chez toi, mais j'ai écrit :

Private Sub ComboBox1_Click()
If Me.ComboBox1.ListIndex = -1 Then Exit Sub
Sheets(CStr(Me.ComboBox1)).Activate
End Sub



ET SURTOUT PAS
Private Sub ComboBox1_Click()
If Me.ComboBox1.ListIndex = -1 Then Exit Sub Sheets(CStrMe.ComboBox1)).Activate
End Sub

Car si tu mets tout sur la ligne de la condition If c'est certain que :
1) Tu dois avoir une erreur de syntax
2) Pire que l'erreur de syntax, c'est la Condition de Non-Sélection qui ferait que tu puisses activer une feuille...

Puis finalement, vu que cette procédure est associée à l'évènement Click de la ComboBox, je me rends compte qu'il est inutile de faire ce test de sélection, puisque le Click assure et garantit lui-même que cette sélection à été faite. Donc tu peux écrire directement :

Private Sub ComboBox1_Click()
Sheets(CStr(Me.ComboBox1)).Activate
End Sub

Bonne Journée
@+Thierry
 
F

FlashVB

Guest
Salut,

Je suis comme toi, j'en perds mon latin Vb, je t'envoie un petit fichier sur ce que je souhaite qui apparamment est tout bête...


Merci à toi.

FlashVB
 

Pièces jointes

  • Hyperlink.xls
    26 KB · Affichages: 146
  • Hyperlink.xls
    26 KB · Affichages: 156
  • Hyperlink.xls
    26 KB · Affichages: 152
@

@+Thierry

Guest
Re Salut Flash, le Forum

Je suis désolé, mais nous sommes passé en phase de sécurité maximum dans ma boite depuis les dernières massives attaques virales de ces dernières semaines et il est formellement interdit de télécharger quoique ce soit jusqu'à nouvel ordre.

Donc je ne peux pas du tout te répondre. Post plutôt ton code...

Par contre à l'avenir pense à Zipper...

Voir Lien supprimé

Voir aussi FAQ du Forum

Bon Appétit
@+Thierry
 
F

FlashVB

Guest
Salut,

Et désolé de ne pas être passé par la Zipperie.


Les items font donc référence à des des liens hypertextes et une combobox fait référence à cette liste. Tout se passe bien quand le lien demande l'ouverture d'une feuille contenant un graphique mais quand il s'agit d'une feuille de données, ça plante.

Le message d'erreur est 'erreur 9' et un arrêt de la compil sur la ligne
Sheets(CStr(Me.ComboBox1.Text)).Activate

J'ai réussi à minimiser le code....d'où vient l'erreur ?

Private Sub ComboBox1_Click()
If Me.ComboBox1.ListIndex = -1 Then Exit Sub
Sheets(CStr(Me.ComboBox1.Text)).Activate
End Sub


Merci.

FlashVB
 
@

@+Thierry

Guest
Salut Flash, le Forum

Non je t'ai expliqué que nous rencontrions une difficulté pour faire des hyperlien depuis mon post du 27-08-03 18:15

Donc depuis je t'ai proposé une autre solution, sans hyoperlien, mais directement avec le nom des feuilles...

Maintenant, SANS tester, si tu veux continuer sur cette voie essaies sans mettre Cstr, c'est à dire :

Sheets(Me.ComboBox1).Activate

Mais je ne garantie rien, car si tu gères directement les noms comme précédemment proposé, ce sera plus simple...

Bonne nuit
@+Thierry
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…