Code VBA imbriqué
Liste déroulante avec liens hypertextes
Bonjour,
Je recherche actuellement à réaliser la chose suivante : une liste déroulante comportant les mois de l'année (Janvier jusqu'à décembre). Je possède 12 feuilles dans mon classeur nommé "Janvier", "Février", ... "Décembre".
Ce que je cherche à faire c'est que lorsque je clique par exemple sur "Janvier" dans ma liste déroulante, je me retrouve sur la feuille du classeur Janvier ... que je sur ma liste je clique sur le choix "Février", cela m'emmène sur ma feuille du classeur février ...
j'ai pu trouver un code vba sur le forum mais je dois declarer dans mon code vba l'adresse dde la cellule de recherche
comment faire pour pouvoir mettre la case de recherche n'importe ou
d'ou code vba ibriqué
Private Sub Worksheet_Change(ByVal Target As Range) 'événement excel qui capture les changements dans les cellules de la feuille
'On va lancer une boucle for Next pour rechercher dans toute les feuilles le nom de la bonne feuille pour la selectionner
If Target.Address = ThisWorkbook.activesheet.Range("D1").Address Then 'si le changement repéré dans excel correspond à un changement dans la cellule de choix de liste déroulante, alors ok lire le reste du code, sinon sort
For recherche_sheet = 1 To ThisWorkbook.Worksheets.Count 'fait une recherche par boucle dans les feuilles autant de fois qu'il y'a de feuilles dans le classeur
If ThisWorkbook.Worksheets(recherche_sheet).Name = ThisWorkbook.activesheet.Range("D1").Value Then 'recherche_sheet sert de variable, variable qui change à chaque tour de boucle, ici si nous somme à la boucle 2, alors le code va lire le nom de la feuille 2, la variable prenant la valeur 2, > si valeur feuille = valeur liste déroulante en cours de lecture alors ok <!!> le nom de feuille dans la liste doit être pareil majuscule/majuscule minuscule/minuscule
ThisWorkbook.Worksheets(recherche_sheet).Select 'ok on selectione cette feuille, la feuille étant le numéro de feuille en fonction du numéro de tour de boucle
End If
Next recherche_sheet 'poursuite boucle
End If
End Sub
j'aimerais que vous m'apporter votre précieuse aide
d'avance merci
bonsoir,
une proposition code à mettre dans le code de toutes les feuilles où tu veux que cette possibilité soit active.
Private Sub Worksheet_Change(ByVal Target As Range) 'événement excel qui capture les changements dans les cellules de la feuille
On Error Resume Next
Sheets(Target.value).Select
On Error GoTo 0
End Sub
une autre proposition à mettre le module thisworkbook, il faut supprimer le code Private Sub Worksheet_Change
de toutes les feuilles
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'événement excel qui capture les changements dans les cellules de la feuille
On Error Resume Next
Sheets(Target.value).Select
On Error GoTo 0
End Sub
merci pour la réponse
une autre aide svp
je veux avoir 2 classeurs le premier avec feuille 1 avec les lien et un autre classeur ou on doit chercher les lien
es possible de maider sue le code vba svp