XL 2016 Afficher des données quand je clique sur une cellule

nath45

XLDnaute Nouveau
Bonjour, d'habitude j'arrive à trouver les solutions à mes problèmes mais là j'avoue que je bloque. J'ai un fichier dans lequel j'ai une base de données et un ou des onglets pour afficher des indicateurs type taux de service à partir de ces données.
Dans mon onglet indicateur, j'ai des cellules affichants le nombre de retards répertoriés. Ces cellules fonctionnent grâce à l'utilisation de filtres (=NB.SI.ENS). Ce fichier est censé être mis à la disposition de personnes n'ayant que très peu d'aisance sur excel. Je ne peux donc pas leur demander d'aller utiliser les filtres elles-même. Je souhaiterais savoir s'il est possible, lorsque l'on clique sur le résultat de ces cellules (surlignées en orange) on pourrait être redirigé vers l'onglet base de données et lister les lignes concernées. J'avais penser pouvoir utiliser un lien mais je crois que cela n'est pas possible. Quelqu'un aurait-il une idée ? J'ai mis un fichier d'exemple en pièce jointe. Merci d'avance :)
 

Pièces jointes

  • Suivi.xlsx
    23.5 KB · Affichages: 22
Solution
Bonjour @nath45, JHA,

ton fichier en retour joint ci-dessous (en fin de post). :)

* tu es sur la 1ère feuille "Base de données"
* ne clique pas encore sur le nouveau bouton "Tout montrer"
* note juste que toutes les lignes du tableau sont visibles

* va sur la 2ème feuille "Indicateurs"
* sélectionne la cellule orange G4 ➯ filtre en colonne C, "retard"
* tu pourrais cliquer sur "Tout montrer" pour désactiver le filtre
et afficher toutes les données, mais ne le fais pas encore.

* retourne sur la 2ème feuille "Indicateurs"
* sélectionne la cellule orange G15 ➯ filtre en...

soan

XLDnaute Barbatruc
Inactif
Bonjour @nath45, JHA,

ton fichier en retour joint ci-dessous (en fin de post). :)

* tu es sur la 1ère feuille "Base de données"
* ne clique pas encore sur le nouveau bouton "Tout montrer"
* note juste que toutes les lignes du tableau sont visibles

* va sur la 2ème feuille "Indicateurs"
* sélectionne la cellule orange G4 ➯ filtre en colonne C, "retard"
* tu pourrais cliquer sur "Tout montrer" pour désactiver le filtre
et afficher toutes les données, mais ne le fais pas encore.

* retourne sur la 2ème feuille "Indicateurs"
* sélectionne la cellule orange G15 ➯ filtre en colonne D, "retard"
* clique sur "Tout montrer" ➯ ça affiche toutes les lignes




fais Alt F11 pour voir le code VBA.

* module de Feuil2, sub
Worksheet_SelectionChange()

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  With Target
    If .CountLarge > 1 Then Exit Sub
    Dim col As Byte
    col = -3 * (.Address = "$G$4") - 4 * (.Address = "$G$15")
    If col = 0 Then Exit Sub
    With Worksheets("Base de données")
      Application.ScreenUpdating = 0
      If .FilterMode Then .ShowAllData
      .[A1].AutoFilter Field:=col, Criteria1:="retard"
      .Select
    End With
  End With
End Sub

* Module1, sub ShowAll() (macro appelée par le bouton "Tout montrer")

VB:
Sub ShowAll()
  Application.ScreenUpdating = 0
  With ActiveSheet
    If .AutoFilterMode Then .AutoFilterMode = False
  End With
End Sub

Alt F11 ➯ retour sur Excel.



si besoin, tu peux demander une adaptation.
à te lire pour avoir ton avis.


soan
 

Pièces jointes

  • Suivi.xlsm
    24.1 KB · Affichages: 8

soan

XLDnaute Barbatruc
Inactif
@JHA

j'ai téléchargé ton fichier ; sur la feuille "Indicateurs", il y a bien
2 cases à cocher, mais les cocher ou les décocher ne fait rien,
car sur les 2 feuilles, y'a aucune MFC ; est-ce que c'est voulu
pour que nath45 mette des MFC elle-même ? ou c'est moi
qui n'ai pas fait la bonne manip ?

j'ai cru que je m'étais trompé, et j'ai rechargé le fichier de ton
post #2, mais non : c'est toujours pareil : y'a aucune MFC.

peut-être que tu as mis des MFC qui ne sont pas reconnues
dans ma version d'Excel 2007 ?


soan
 
Dernière édition:

soan

XLDnaute Barbatruc
Inactif
@JHA

bizarre, moi j'ai aucune MFC :

Image.jpg


ça doit être ma version d'Excel 2007.

soan
 

soan

XLDnaute Barbatruc
Inactif
@JHA

ah, merci ! :) cette fois c'est ok :

Image.jpg


mais j'comprends pas pourquoi j'ai pas vu de MFC dans tes 2 autres fichiers
(ça doit être dû à une différence de versions d'Excel) ; je suppose que l'ajout
du nom de la cellule liée a arrangé le problème.


soan
 

soan

XLDnaute Barbatruc
Inactif
Bonsoir @nath45, JHA, le fil,

le titre de ton sujet est « Afficher des données quand je clique sur une cellule »,
et dans ton énoncé, tu as parlé de filtres ; aussi, je t'ai proposé la solution de
mon post #5 ; peux-tu l'essayer, et me donner ton avis dessus ?




dans ton énoncé, tu as aussi écrit : « Ce fichier est censé être mis à la disposition
de personnes n'ayant que très peu d'aisance sur excel. Je ne peux donc pas leur
demander d'aller utiliser les filtres elles-même. »

pourtant, il existe de nombreuses aides de l'État pour des formations, dont Excel.




si tes utilisateurs n'arrivent pas à utiliser ma solution car ils ne savent pas comment
cliquer sur une cellule, ou comment cliquer sur un bouton affiché sur la feuille de
calcul, je te rassure : il existe des formations qui commencent par expliquer ce qu'est
une souris et un écran ; la preuve ICI (et c'est bien sur Terre, pas dans la 4ème dimension).


soan
 

nath45

XLDnaute Nouveau
Bonjour Soan. Merci pour ton post. La solution est valable aussi.

Quant au sujet de la méconnaissance d'Excel pour les personnes à qui je destine mon travail, je te confirme que je suis du même avis que toi. Simplement, dans le cas présent, s'agissant de mes N+1 et N+2, même si l'envie de leur dire de se former aux bases d'Excel est grande, je ne peux me le permettre. Mais je te confirme que si les gens prenaient la peine d'apprendre les manipulations de base (utilisation des filtres, rechercheV ....), nous perdrions moins de temps à créer des macros qui, je te l'accorde, peuvent paraitre superficielles ;)
 

nath45

XLDnaute Nouveau
Bonsoir @nath45, JHA, le fil,

le titre de ton sujet est « Afficher des données quand je clique sur une cellule »,
et dans ton énoncé, tu as parlé de filtres ; aussi, je t'ai proposé la solution de
mon post #5 ; peux-tu l'essayer, et me donner ton avis dessus ?




dans ton énoncé, tu as aussi écrit : « Ce fichier est censé être mis à la disposition
de personnes n'ayant que très peu d'aisance sur excel. Je ne peux donc pas leur
demander d'aller utiliser les filtres elles-même. »

pourtant, il existe de nombreuses aides de l'État pour des formations, dont Excel.




si tes utilisateurs n'arrivent pas à utiliser ma solution car ils ne savent pas comment
cliquer sur une cellule, ou comment cliquer sur un bouton affiché sur la feuille de
calcul, je te rassure : il existe des formations qui commencent par expliquer ce qu'est
une souris et un écran ; la preuve ICI (et c'est bien sur Terre, pas dans la 4ème dimension).


soan
Bonjour @nath45, JHA,

ton fichier en retour joint ci-dessous (en fin de post). :)

* tu es sur la 1ère feuille "Base de données"
* ne clique pas encore sur le nouveau bouton "Tout montrer"
* note juste que toutes les lignes du tableau sont visibles

* va sur la 2ème feuille "Indicateurs"
* sélectionne la cellule orange G4 ➯ filtre en colonne C, "retard"
* tu pourrais cliquer sur "Tout montrer" pour désactiver le filtre
et afficher toutes les données, mais ne le fais pas encore.

* retourne sur la 2ème feuille "Indicateurs"
* sélectionne la cellule orange G15 ➯ filtre en colonne D, "retard"
* clique sur "Tout montrer" ➯ ça affiche toutes les lignes




fais Alt F11 pour voir le code VBA.

* module de Feuil2, sub
Worksheet_SelectionChange()

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  With Target
    If .CountLarge > 1 Then Exit Sub
    Dim col As Byte
    col = -3 * (.Address = "$G$4") - 4 * (.Address = "$G$15")
    If col = 0 Then Exit Sub
    With Worksheets("Base de données")
      Application.ScreenUpdating = 0
      If .FilterMode Then .ShowAllData
      .[A1].AutoFilter Field:=col, Criteria1:="retard"
      .Select
    End With
  End With
End Sub

* Module1, sub ShowAll() (macro appelée par le bouton "Tout montrer")

VB:
Sub ShowAll()
  Application.ScreenUpdating = 0
  With ActiveSheet
    If .AutoFilterMode Then .AutoFilterMode = False
  End With
End Sub

Alt F11 ➯ retour sur Excel.



si besoin, tu peux demander une adaptation.
à te lire pour avoir ton avis.


soan
Soan, dis moi, j'ai appliqué ta procédure sur mon fichier, cela fonctionne très bien.
Par contre je souhaite ajouter un critère à mon filtrage.
Par exemple si je souhaite, lorsque je clique sur mon nombre de retards, afficher les retards + pour la ville de Lyon.
J'ai tenté de rajouter une boucle IF supplémentaire, mais sans succès.
 

Discussions similaires

Statistiques des forums

Discussions
312 234
Messages
2 086 467
Membres
103 226
dernier inscrit
smail12