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 ...

Est ce que cela est faisable et si oui comment ?

Merci d'avance

Bonjour,

Comme ceci ? ^^

1'416anthonye.xlsm (29.35 Ko)

En réalité, je n'ai pas vraiment compris à quoi servait le bouton car lorsque je cliquait dessus rien ne se passait !

Je vous ai renvoyé le fichier en modifiant plus dans le sens de ma recherche !

Je souhaiterais donc avoir une liste déroulante ou je retrouve l'ensemble des mois de l'année dedans ! J'aimerais que si je choisi "janvier" dans ma liste déroulante, cela m'envoi directement sur la feuille du mois de janvier ! Une fois sur la feuille du mois de janvier, si je sélectionne "février" dans ma liste déroulante, cela m'emmene directement sur la feuille de février ...

Comme s'il s'agissait de liens hypertextes mais dans la liste déroulante ...

J'espère avoir réussi à être plus clair ...

J'espère de tout coeur que vous pourrez me trouver une solution !

Merci d'avance

361anthonye.xlsm (26.48 Ko)

Hello, 8)

Voilà un code qui devrait faire l'affaire, par contre j'ai changé le bouton formulaire de liste déroulante en bouton activex, c'est plus simple pour capturer l'événement de changement.

voir PJ

1'035copie-de-anthonye.xlsm (36.02 Ko)

Il ne se passe rien quand je clic dessus ...

Lorsque je clic dessus il se sélectionne simplement ...

ça c'est un problème de sécurité de macros, il faut modifier le niveau de sécu pour permettre d'activer le bouton activex.

Sinon on passe par une liste déroulante dans une cellule excel ce qui sera plus ou moins le même code, donne moi 5 minutes et je le transmet.


Voilà

Liste déroulante en D1, et l'événement worksheet change, renvoi sur la feuille en fonction du nom choisit dans la liste déroulante.

Attention si changement de nom, faire en sorte que la casse majuscule/minuscule soit la même dans les noms de la liste et des feuilles.

Wow ! Oui effectivement ça marche !

Vous serait t'il possible de m'expliquer le processus ou la formule afin que je puisse effectuer l'opération sur mon document réel et également ainsi insérer la liste de choix sur chacune des feuilles afin de passer d'un mois à l'autre ?

Merci énormément !

En ce qui concerne la cellule jaune de choix de liste déroulante

1 choisir la cellule excel où mettre le choix de liste déroulante

2 onglet données > choisir validation de données

3 Autoriser liste, choisir ses options que l'on souhaite

4 Taper la formule : =DECALER(Feuil1!$A$9;0;0;NBVAL(Feuil1!$A:$A)-1)

Feuil1! Indique où se trouve la feuille contenant la liste

A9 fait référence au début de la liste déroulante "nom liste déroulante",

puis spécifier la colonne de la liste déroulante A:A

Enfin bien garder les marqueurs $$ pour figer les cellules

ça permet d'avoir une liste déroulante dynamique, en effet si on ajoute des données la liste les reprends sans à avoir à changer l'adressage

5 Puis copier la cellule choix de liste déroulante, dans chaque cellule D1 de chaque feuille, sinon il faudra changer l'adresse de la cellule de choix dans VBA

Partie du code VBA

1 Ajouter ce code dans le developpeur VBA, dans la feuille contenant la cellule de choix de liste déroulante

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
                                   Exit sub 'arrêt recherche onglet étant donné qu'il a été trouvé et évite d'aller se balader ailleurs par bug    
          End If
        Next recherche_sheet 'poursuite boucle
    End If
    End Sub

2 Refaire le copier/coller dans chaque feuille vba nécessitant de refaire un renvoi sur une autre feuille contenant la liste choix

3 Si changement d'adresse de la cellule de choix, dans une feuille, faire l'adaptation dans VBA pour que l'événement feuille soit captée

ThisWorkbook.activesheet.Range("D1").Address = D1

si on veut la cellule C3 alors ThisWorkbook.activesheet.Range("c3").Address

Wow ... je n'ai vraiment aucunes connaissances dans les codes VBA c'est un peu du chinois pour moi mais je vais essayer !

Merci énormément pour votre aide en tout cas !

Je me permet de vous poser 2 autres question par la même occasion :

Je vous ai joint un fichier "Acceuil" qui est une capture d'écran de la page d'acceuil de mon document !

Vous pouvez observer des "Fiches d'identités" de l'ensemble des athlètes que j'entraine ...

On peut également observer que les sportifs sont classés dans 5 colonnes distinctes ...

J'aimerais savoir s'il est possible de faire défiler vers le bas les colonnes mais séparément ? (exemple : si ma souris est sur la colonne "P1" seuls les sportifs de cette colonne défileraient ... si je suis sur la colonne "B" seuls les sportifs de cette catégorie défileraient ...)

Pour la seconde question :

Je vous ai joint une capture d'écran d'une photo trouvé sur internet qui est en réalité le rendu que j'aimerais donner à une de mes feuilles de mon document !

Je vais éssayer d'être clair ...

J'aimerais que sur une seule et même feuille Excel, avoir 4 tableaux qui pourraient eux également défiler séparément les uns des autres afin d'afficher des lignes qui ne sont pas de le champs de départ !

Comme si j'avais un tableau de 100 lignes mais que l'on en voit que 10 et que l'on peut ensuite glisser la souris vers le bas pour faire défiler les suivantes ... et cela avec 4 tableaux différents sur la même feuille

Merci

acceuil test
AnthonyE a écrit :

J'aimerais savoir s'il est possible de faire défiler vers le bas les colonnes mais séparément ? (exemple : si ma souris est sur la colonne "P1" seuls les sportifs de cette colonne défileraient ... si je suis sur la colonne "B" seuls les sportifs de cette catégorie défileraient ...)

De base ce n'est pas possible, Excel fonctionne comme une grille et l'appli. bouge cette grille, après il est possible d'ajouter des choses sur cette grille et de faire des choses en dehors, mais il n'existe pas d'événement VBA qui capte les mouvements de scrolling de la souris donc pas de méthode à ma connaissance pour faire ce que tu veux faire.

Après à l'aide d'un formulaire en VBA peut être, mais sans convictions, ce serait assez complexe, une colonne dans un userform je vois comment ça marche, mais plusieurs ? ... Faudrait ouvrir un autre post et poser cette question sur le forum peut être que quelqu'un l'a déjà fait, par contre ce sera difficile pour toi de faire l'adaptation et la maintenance de l'appli. sans connaissances de base.

AnthonyE a écrit :

Pour la seconde question :

J'aimerais que sur une seule et même feuille Excel, avoir 4 tableaux qui pourraient eux également défiler séparément les uns des autres afin d'afficher des lignes qui ne sont pas de le champs de départ !

Comme si j'avais un tableau de 100 lignes mais que l'on en voit que 10 et que l'on peut ensuite glisser la souris vers le bas pour faire défiler les suivantes ... et cela avec 4 tableaux différents sur la même feuille

Merci

A ma connaissance le fractionnement de l'affichage permet de faire cela en partie :

capture 2

Explications par exemple ici :

https://support.office.com/fr-fr/article/Fractionner-des-volets-pour-verrouiller-des-lignes-ou-des-colonnes-dans-des-zones-distinctes-de-la-feuille-de-calcul-516a7001-b3ed-4122-a6bb-fd6d4a9d6434

Si ta problématique de liste déroulante est résolue :

Et si questions spécifiques sur la création d'un userform, refaire un nouveau post sur ce thème.

Rechercher des sujets similaires à "liste deroulante liens hypertextes"