liste deroulante resumant tous les onglets

J

jean luc

Guest
Y a t'il une possibilité de créer un onglet qui possèderait une liste déroulante ayant comme référence chaque onglet de mon classeur ?

Le but est de selectionner l'onglet pour y atterir.

J'ai trop d'onglet pour pouvoir m'y retrouver !!!

Merci d'avance
 

fred13

XLDnaute Nouveau
Re : liste deroulante resumant tous les onglets

salut

Un peu en avance sur la prédiction mais avec une autre présentation,
car un peu plus de critères réclame un peu plus de complications.​

nota : pour 52 cas, il vaut mieux utiliser une seconde liste dite déroulante (ComboBox) mais gare à la casse !

Oups, je n'avais pa vu les messages précédents


excellent !!
merci beaucoup :D
 

fred13

XLDnaute Nouveau
Re : liste deroulante resumant tous les onglets

salut

Un peu en avance sur la prédiction mais avec une autre présentation,
car un peu plus de critères réclame un peu plus de complications.​

nota : pour 52 cas, il vaut mieux utiliser une seconde liste dite déroulante (ComboBox) mais gare à la casse !

Oups, je n'avais pa vu les messages précédents

excellent !!!!
merci beaucoup ;)
 

rododom05

XLDnaute Nouveau
Bonjour tout le monde, à mon tour de déterrer ce sujet vieux maintenant de 14 ans. :D

Je suis donc tombé sur ce sujet en faisait une recherche, et je dois dire que je tire mon chapeau à celui qui a donné la solution, elle marche nickel.
J'ai une question en espérant que ma demande soit réalisable : est-il possible de chercher des onglets non pas en fonction de la famille d'onglet (Paris, Marseille...), mais plutôt en fonction de valeurs qui se trouvent dans les onglets même ? Je m'explique, chaque onglet correspond à un matériel roulant, avec des caractéristiques précises. Est-il possible grâce à un artifice de sélectionner des onglets en fonction de la valeur d'une caractéristique ?

En vous remerciant, je vous souhaite un bon week-end. :D

Rod'
 

Si...

XLDnaute Barbatruc
Bonsoir

je ne sais pas si tu parles de ma proposition mais je peux te dire qu'on peut alimenter un tel contrôle avec pleins de choses ; mais, pour être digeste, il faudra bien choisir les ingrédients à tester.
Donne nous un exemple précis et on verra à quelle sauce on peut le traiter;).
 

rododom05

XLDnaute Nouveau
Bonjour,

En fait, ce que je souhaite faire c'est un catalogue de produits. J'ai mis la possibilité d'ajouter un produit, et la possibilité donc de choisir un produit parmi tous via la solution de ce topic.
Ce que je souhaite faire maintenant... Chaque produit a des caractéristiques. Ces caractéristiques, numériques, se trouvent tout le temps dans les mêmes cellules, d'un produit à l'autre. Longueur, masse, vitesse maximale...on peut trouver pleins de choses comme ça. Ce que je souhaite faire, c'est de permettre à l'utilisateur de rentrer dans une case une caractéristique, et que l'outil aille chercher l'onglet qui contient cette information, ou l'information la plus proche. Ca peut également être un système déroulant qui affiche les caractéristiques déjà existantes.
Est-ce réalisable ? :D
 

rododom05

XLDnaute Nouveau
Salut Toto,

Magnifique ton fichier. Ca ressemble un peu à ce que j'aimerais beaucoup. ;)
Je t'envoie en fichier joint ce que je souhaite exactement, même si je pense que ça s'en approche beaucoup.

Merci beaucoup pour ton temps ! :D
 

Pièces jointes

  • Toto.xlsx
    11.9 KB · Affichages: 56

rododom05

XLDnaute Nouveau
Re-bonjour ! :)

Au vu de cette possibilité, le mieux est effectivement d'afficher les résultats. Mais en soit, je dois avouer que suite à mes recherches, j'ai trouvé comment faire ! :D
Maintenant il ne me reste plus qu'à trouver le moyen pour afficher le résultat le plus proche ! Par exemple, pour l'âge, si je tape 100, j'aimerais la valeur de l'âge la plus proche. :)

A bientôt oui ! :D
 

job75

XLDnaute Barbatruc
Bonsoir rododom05, Si..., chère ânesse,

Pas besoin de bouton OK :
Code:
Option Compare Text 'la casse est ignorée

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [E7,E9,E11,E13]) Is Nothing Then Exit Sub
Dim a, b$(), mem#(), i%, w As Worksheet, c As Range
a = Array("*" & [E7] & "*", [E9], [E11], [E13]) 'adaptable
ReDim b(UBound(a)): ReDim mem(UBound(a))
For i = 1 To UBound(a): mem(i) = 9 ^ 9: Next
For Each w In Worksheets
  If a(0) <> "**" And w.[C6] Like a(0) Then b(0) = b(0) & w.Name & ","
  For i = 1 To UBound(a)
    Set c = w.Range("C" & i + 6)
    If a(i) <> "" And c <> "" And Abs(c - a(i)) < mem(i) Then mem(i) = Abs(c - a(i)): b(i) = w.Name
  Next
Next
'---restitutions---
With [F7].Validation
  .Delete
  [F7] = ""
  If b(0) <> "" Then .Add xlValidateList, Formula1:=Left(b(0), Len(b(0)) - 1): [F7] = Left(b(0), InStr(b(0), ",") - 1)
End With
[F9] = b(1): [F11] = b(2): [F13] = b(3)
[F7].Select 'facultatif
End Sub
A+
 

Pièces jointes

  • Recherche onglets(1).xlsm
    29.2 KB · Affichages: 53
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour le forum,

Un complément pour accéder facilement aux feuilles des résultats :
Code:
Option Compare Text 'la casse est ignorée

Private Sub Worksheet_Activate()
'mise à jour pour le cas où l'on a supprimé des feuilles
Worksheet_Change [E7]
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [E7,E9,E11,E13]) Is Nothing Then
  Dim a, b$(), mem#(), i%, w As Worksheet, c As Range
  a = Array("*" & [E7] & "*", [E9], [E11], [E13]) 'adaptable
  ReDim b(UBound(a)): ReDim mem(UBound(a))
  For i = 1 To UBound(a): mem(i) = 9 ^ 9: Next
  For Each w In Worksheets
    If a(0) <> "**" And w.[C6] Like a(0) Then b(0) = b(0) & w.Name & ","
    For i = 1 To UBound(a)
      Set c = w.Range("C" & i + 6)
      If a(i) <> "" And c <> "" And Abs(c - a(i)) < mem(i) Then mem(i) = Abs(c - a(i)): b(i) = w.Name
    Next
  Next
  '---restitutions---
  With [F7].Validation
    .Delete
    [F7] = ""
    If b(0) <> "" Then .Add xlValidateList, Formula1:=Left(b(0), Len(b(0)) - 1)
  End With
  [F9] = b(1): [F11] = b(2): [F13] = b(3)
  If Not Intersect(Target, [E7]) Is Nothing And [E7] <> "" Then
    [F7].Select
  ElseIf Not Intersect(Target, [E9,E11,E13]) Is Nothing Then
    Target.Select
  End If
ElseIf Not Intersect(Target, [F7]) Is Nothing And [F7] <> "" Then
  Application.Goto Sheets([F7].Value).[C6]
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(ActiveCell, [F9,F11,F13]) Is Nothing Or ActiveCell = "" Then Exit Sub
With ActiveCell
  .Offset(, -1).Select
  Application.Goto Sheets(.Value).Cells(7 + (.Row - 9) / 2, 3)
End With
End Sub
Edit : j'ai ajouté la macro Worksheet_Activate.

Fichier (2).

Bonne journée.
 

Pièces jointes

  • Recherche onglets(2).xlsm
    31.3 KB · Affichages: 44
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 203
Messages
2 086 196
Membres
103 153
dernier inscrit
SamirN