Macro si une cellule a telle valeur, afficher telle cellule

jujubercy

XLDnaute Nouveau
Bonsoir,

Malgré plusieurs tests personnels et de longues recherches sur internet, je coince sur un code VBA, ou autre si ce n'est pas cela la solution......
Dans mon métier de préparateur physique, j'utilise de nombreux exercices, avec entre autre des charges, des séries, des répétitions différentes d'un exercice à l'autre.
J'ai donc un fichier où tous ces exercices sont répertoriés. Mais évidement, ils ne sont pas tous visibles sur une seule feuille Excel car ils sont nombreux.
Les athlètes doivent donc faire défiler le curseur pour atteindre l'exercice désiré et cela prend du temps.
J'ai donc crée un liste déroulante avec le nom de tous les exercices et je voudrais y ajouter un bouton à cliquer qui me permet d'atteindre la plage de cellule où se trouve l'exercice.
Je joint un fichier pour plus de compréhension.
Exemple: si dans la liste déroulante qui se trouve en A2 je choisis l'exercice "développé couché", et que je valide sur le bouton situé en B2, cela me renvoie (comme un lien hypertexte en fait), à la plage W:Z où se trouve les consignes pour cet exercice.

Merci d'avance.
Julien
 

Pièces jointes

  • Exemple choix exercice.xlsm
    80.3 KB · Affichages: 48
  • Exemple choix exercice.xlsm
    80.3 KB · Affichages: 54
  • Exemple choix exercice.xlsm
    80.3 KB · Affichages: 60

Modeste

XLDnaute Barbatruc
Re : Macro si une cellule a telle valeur, afficher telle cellule

Bonsoir Julien et bienvenue à toi,

Le changement de valeur en A2, peut déclencher l'exécution d'un petit bout de code ... Voici une version minimaliste (on pourrait y ajouter un peu de couleur, par exemple, pour faciliter la "visualisation" de la colonne concernée)

Le code est à copier-coller dans le module de la feuille "Prise de max"
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target <> "" Then
        col = Application.Match(Target, [1:1], 0)
        Cells(1, col).Activate
    End If
End Sub

... Mais là, moi je vais dormir (les oiseaux de nuit du forum complèteront, amenderont et amélioreront certainement!)
 

bbb38

XLDnaute Accro
Re : Macro si une cellule a telle valeur, afficher telle cellule

Bonjour julien, Modeste, le forum,
Une solution avec une ListBox.
PS. Re Bonjour Modeste,
Heureux de te croiser sur ce fil et toutes mes félicitations pour ton code (4 lignes). Pour ma part, impossible de faire mieux. L’oiseau de nuit rentre ses ailes et va dormir.
Cordialement,
Bernard
 

Pièces jointes

  • Exemple choix exercice.xlsm
    64.5 KB · Affichages: 64
  • Exemple choix exercice.xlsm
    64.5 KB · Affichages: 55
  • Exemple choix exercice.xlsm
    64.5 KB · Affichages: 54

jujubercy

XLDnaute Nouveau
Re : Macro si une cellule a telle valeur, afficher telle cellule

Merci beaucoup à vous deux.

Je vais continuer de mettre en place mon fichier de travail avec vos informations.
Je vous tiens au courant de mes avancées.

Merci.
Julien
 

DoubleZero

XLDnaute Barbatruc
Re : Macro si une cellule a telle valeur, afficher telle cellule

Bonjour à toutes et à tous,

Bienvenue sur XLD, jujubercy.

Une autre suggestion, en pièce jointe, avec ce code :

Code:
Option Explicit
Private Sub Worksheet_Change(ByVal c As Range)
    If Not Application.Intersect(c, Range("a2")) Is Nothing Then
        Cells(1, 2).Resize(, Columns.Count - 1).Find(c, LookIn:=xlValues, lookat:=xlWhole). _
                Select: Application.Goto Selection, Scroll:=True
    End If
End Sub

Attention : la liste des exercices en ligne 1 est incomplète et cela provoque des erreurs.

Gr:Ds bis:Du à Modeste !

A bientôt :)
 

Pièces jointes

  • 00 - jujubercy - Atteindre.xls
    185.5 KB · Affichages: 33

jujubercy

XLDnaute Nouveau
Re : Macro si une cellule a telle valeur, afficher telle cellule

Merci beaucoup, c'est que je cherchais exactement à faire!!!!!
Au top ;)

Par contre si au lieu d'utiliser une liste déroulante classique (qui me permet seulement de visualiser 8 éléments), j'utilise une liste déroulante réalisée via contrôles de formulaire afin de pouvoir visualiser tous les éléments de la liste en une seule fois, ce n'est plus un nom qui apparait mais le numéro correspondant à la place du mot dans la liste.
Existe-t-il une solution pour valider avec le bouton "recherche" la sélection de la liste déroulante créée via contrôles de formulaire ?
La seule idée que j'ai trouvé pour le moment étant de mettre le numéro correspondant devant chaque nom d'exercice.
Merci encore.

Julien
 

Pièces jointes

  • Exemple choix exercice liste déroulante contrôles de formulaire.xlsm
    87 KB · Affichages: 28

jujubercy

XLDnaute Nouveau
Re : Macro si une cellule a telle valeur, afficher telle cellule

Merci DoubleZero, c'est exactement ce que je cherchais.
Par contre suite à des modifications sur mon fichier, j'ai du modifier l'emplacement des noms des exercices ainsi que de la liste déroulante. Et après avoir passé ma soirée à retourner le problème dans tous les sens, je n'arrive toujours pas à comprendre ce qui doit être modifié pour pouvoir bénéficier de ce que tu as crée sur le nouveau fichier.
As-tu une idée ?
A bientôt.
Julien
 

Pièces jointes

  • Prise de max test nouvelle version.xlsm
    109.1 KB · Affichages: 27

DoubleZero

XLDnaute Barbatruc
Re : Macro si une cellule a telle valeur, afficher telle cellule

Bonjour à toutes et à tous,

Une troisième version dans laquelle le fichier joint en #9 comporte les modifications suivantes :

- suppression des cellules fusionnées :mad: en lignes 9 et 10 ;

- suppression, une fois de plus, de la "Zone combinée" et remplacement par une "ComboBox" ;

- suppression des multiples macros devenues inutiles et remplacement par une seule, nommée "Exercices_afficher_masquer".

Ladite version sera-t-elle la dernière ?

A bientôt :)
 

Pièces jointes

  • 00 - jujubercy - Atteindre V3.xls
    273.5 KB · Affichages: 33

jujubercy

XLDnaute Nouveau
Re : Macro si une cellule a telle valeur, afficher telle cellule

Une fois de plus merci !

Je l'ai téléchargé ce midi et j'ai travaillé dessus depuis.

Pour éclairer un peu plus les multiples macros pour chaque exercices sont là en fait pour permettre de choisir sur quels exercices travailler , car en fonction des athlètes et/ou sports, les exercices ne sont pas les mêmes, donc je les sélectionne avant la séance pour éviter qu'il y en ait trop.

Je me doutais un peu que la fusion de cellules en lignes 9 et 10 empêchait le bon fonctionnement du code

Pour ma culture personnelle, j'ai tenté de déchiffrer le code,

Option Explicit
Private Sub ComboBox1_Change()
Range("d13").Select
SendKeys ("{ENTER}")
End Sub
Private Sub Worksheet_SelectionChange(ByVal c As Range)
If Not Application.Intersect(c, Range("d14")) Is Nothing Then
Cells(9, 2).Resize(, Columns.Count - 1).Find(c, LookIn:=xlValues, lookat:=xlWhole). _
Offset(2, 0).Select: Application.Goto Selection, Scroll:=True
End If
End Sub

et si j'ai tout compris:
Range("d13"). correspond à l'emplacement de la comboBox sur la feuille
Range("d14") correspond à la case où est renvoyée la valeur de la ComboBox
Cells(9, 2): le 9 correspond à la ligne sur la quelle se trouve les valeurs à chercher. Par contre pour le 2, je n'ai pas trouvé.
Ni d'ailleurs pour Columns.Count - 1 et Offset(2, 0). :(

A bientôt et merci encore.
Je pense qu'avec cette version , je suis tranquille pour un petit moment.

Julien
 

Discussions similaires

Statistiques des forums

Discussions
312 505
Messages
2 089 101
Membres
104 031
dernier inscrit
RimeF