Excel - Ouverture de lien Hypertexte depuis UserForm
Bonjour à tous,
J'ai hésité pas mal de temps avant de demander mon aide ici (pour éviter de déranger pour un problème qui est probablement simple), mais après deux jours de recherches infructueuses, je me permets de vous demander votre aide ici.
Voici mon problème :
J'ai deux feuilles excel, "Recherche" et "Globale" dans un même classeur. La première feuille "Recherche" permet à l'aide du bouton "Recherche par n° de feuille" de chercher dans la feuille "Globale" le numéro entré par l'utilisateur puis sélectionne le lien Hypertexte se trouvant à 5 cases sur la droite du numéro, se faisant, je souhaiterais que le lien s'ouvre, cependant, rien n'y fait.
J'ai débuté VBA il y a peu, et je me bats comme je peux pour trouver des solutions à tous les problèmes que j'ai pu rencontrer mais cette fois, je viens à vous car je nécessite de l'aide.
Etant au travail, le pare-feu m'empêche de joindre un fichier, cependant, vous trouverez ci-dessous le code posant problème.
Je vous remercie par avance pour l'aide que vous pourriez apporter et je reste à votre disposition si vous avez la moindre question.
Private Sub CommandButton1_Click()
code = TextBox1.Value
Set Celltrouvee = Worksheets("Globale").Range("$B$5:$B$50").Find(what:=code, LookIn:=xlValues, lookat:=xlWhole)
If Celltrouvee Is Nothing Then
MsgBox "La feuille " & code & " n'existe pas."
Else
Sheets("Globale").Activate
Celltrouvee.Select
ActiveCell.Offset(0, 4).Select
Worksheets("Globale").ActiveCell.Hyperlink.Follow NewWindow:=True
Unload UserForm1
End If
Bonjour,
À tester :
Private Sub CommandButton1_Click()
Dim Cel As Range
code = TextBox1.Value
For Each Cel In Worksheets("Globale").Range("$B$5:$B$50")
If Cel.Value = code Then
Cel.Offset(0, 4).Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
Unload UserForm1
End If
Next Cel
MsgBox "La feuille " & code & " n'existe pas."
End Sub
Gelinotte
Bonjour, je m'excuse pour la réponse tardive, j'en avais presque oublié mon message sur ce forum.
Je te remercie pour ta réponse, je vois que tu as pu éliminé de nombreuses lignes superflus de mon code, cependant, je n'arrive pas à le faire fonctionner...
Cependant, j'ai eu tout le loisir de chercher pendant ce mois et demi et je poste mon code ici pour les générations futures qui auraient le même problème que moi. Je pense qu'il reste encore pas mal de travail à faire sur mon code (qui fonctionne néanmoins), du coup si toi ou n'importe qui a des idées pour le simplifier et le rendre plus "sexy", ce serait avec plaisir.
Voici mon travail :
Dim NuméroUtilisateur As Variant
Dim NuméroRecherché As Variant
Dim NomReporting As String
Dim CheminTotal As String
Private Sub CommandButton1_Click()
'Ouvre TextBox1 demandant à l utilisateur d entrer un numéro de feuille de reporting
'"NuméroUtilisateur" prend alors la valeur de la TextBox1
NuméroUtilisateur = TextBox1.Value
'Recherche la valeur de "NuméroUtilisateur" dans la feuille "Listing" dans les cellules de A7 à A200
Set NuméroRecherché = Worksheets("Listing").Range("$A$7:$A$200").Find(what:=NuméroUtilisateur, LookIn:=xlValues, lookat:=xlWhole)
'Si l utilisateur rentre un numéro qui n'existe pas, alors le message "Entrez un numéro de feuille valide" s'affiche
If NuméroRecherché Is Nothing Then
MsgBox "Entrez un numéro de feuille valide."
Else
'Si l'utilisateur ne rentre aucun numéro, alors le message "Entrez un numéro de feuille" s'affiche
If NuméroRecherché = "" Then
MsgBox "Entrez un numéro de feuille."
'Sinon, active la feuille "Listing"
'Selectionne la valeur "NuméroRecherché"
Else
Worksheets("Listing").Activate
NuméroRecherché.Select
'La variable "CheminTotal" prend la valeur de la cellule située à 5 colonnes à droite de la cellule sous la forme X:\Y\Z
'La variable "NomReporting" Prend la valeur de la cellule située à 4 colonnes à droite de la cellule fichier.xl*
'Ouvre le fichier à l'aide du lien Hypertexte contenu dans la variable "CheminTotal"
'Active le précédemment ouvert, à l'aide du nom du fichier contenu dans la variable "NomReporting"
'Sélectionne la première cellule A1 du fichier précédemment ouvert
CheminTotal = ActiveCell.Offset(0, 5).Value
NomReporting = ActiveCell.Offset(0, 4).Value
Workbooks.Open Filename:=CheminTotal
Workbooks(NomReporting).Activate
Range("A1").Select
'Ferme l'UserForm1
Unload Recherche_num
End If
End If
End Sub
Cordialement,
vasille