XL 2016 Liste déroulante avec choix qui renvoient sur autres classeurs

sukkoi

XLDnaute Nouveau
Hello le forum

Je souhaite pouvoir créer une liste déroulante à partir d'une cellule (jusque là tout va bien) MAIS que chaque choix disponibles dans cette liste déroulante, une fois séléctionné, me renvoie vers une page spécifique d'une autre classeur.

En lien un exemple.
Donc, quand je valide un choix qui apparaît dans la case jaune, je souhaiterais que le choix affiché me permette en cliquant dessus d'être renvoyé vers le classeur secondaire correspondant.

Le pourquoi de ce besoin: je me mets à dispo et hors connection, l'accès à un ensemble de carthographies moteur qui sont classées suivant différents critères (régime, rapport engagé...) En fait, je me fait une version portable au cas où plus d'internet.

Voilà, je ne sais même pas si ce besoin est facilement réalisable...

@+
 

Pièces jointes

  • exemple.xlsx
    9.5 KB · Affichages: 10
Solution
Nickel, ça fonctionne ! ✌️
En effet, j'avais vraiment loupé ce point (et pas pigé !)

Merci pour ton aide et ta patience.
Baby Reaction GIF

chris

XLDnaute Barbatruc
Bonjour

Par formule il faudrait INDIRECT mais ne marche que si les classeurs sont ouverts

Puisque tu as 2016 et donc POwerQuery intégré à Excel, tu peux l'utiliser mais l'exemple est trop pauvre pour t'en dire plus
 
Dernière édition:

sukkoi

XLDnaute Nouveau
Ok, mais qu'entends tu par "trop pauvre" ?
Même si je mets un exemple plus proche en nombre de choix possibles dans la liste, la pricipe de la problématique de base reste la même.

J'ai refait un "jeu d'exemple" plus détaillé.
Dans le classeur "Feuille Principale", lorsque via la liste déroulante je séléctionne soit "ETV" soit "IGNITION", je souhaite que cela ouvre le classeur correspondant.

Merci pour votre aide.
 

Pièces jointes

  • Feuille Principale.xlsx
    9.5 KB · Affichages: 7
  • ETV.xlsx
    7.9 KB · Affichages: 5
  • IGNITION.xlsx
    7.9 KB · Affichages: 7

sukkoi

XLDnaute Nouveau
Punaise, c'est top ce que tu as fait !

Par contre maintenant, si je veux injecter ton code:

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("Choix")) Is Nothing Or Target.Cells.Count > 1 Then Exit Sub
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & Target.Value & ".xlsx"
End Sub

Sur mon projet réel, je vois pas trop comment m'y prendre.
En fait j'ai du mal à comprendre la différence entre "Macro" (et visiblement ceci n'en est pas une vue que je ne la vois pas en mode développeur / Macro) ET "Visual Basic" où là je trouve bien ton bout de code.
 

chris

XLDnaute Barbatruc
Bonjour

Macro est un terme qui date des versions Excel jusqu'à Excel 4

Depuis Excel 5, sorti en 1993 soit près de 30 ans, on est passé à un autre langage : le VBA (Visual Basic Application)

Pour d'obscures raisons Microsoft a laisser le mot macro mais on n'utilise plus le langage macro à de très, très rares exceptions près dans la définition de noms.

Il faut donc bien passer par l'éditeur (VBE) pour copier le code dans la module de la feuille concernée.
Feuille qui doit avoir la cellule où se trouve la liste déroulante nommée Choix
 

sukkoi

XLDnaute Nouveau
Ben oui après j'ai peut être mal compris.
"Il faut donc bien passer par l'éditeur (VBE) pour copier le code dans la module de la feuille concernée.
Feuille qui doit avoir la cellule où se trouve la liste déroulante nommée
Choix"

Dans mon classeur "Feuille Principale", j'ai ouvert Virtual Basic puis fait Insertion / Module, y ai collé ton code dans la "Feuil1 'CHOIX), puis enregistré.
Je pense que cela respecte bien ce que tu expliques non ?

Après je comprends pas ce que tyu veux dire par "défini le nom " ?
 

Discussions similaires