Lien hyperlink et filtre automatique

FKRM

XLDnaute Nouveau
Bonjour à tous,

Je souhaite utiliser en VBA des liens(hyperlinks) qui me permettraient de rediriger l'utilisateur vers une autre page avec les données filtrées en fonction du lien sur lequel il a cliqué.

Je m'explique...

J'ai par exemple deux feuilles dans le même classeur :

L'une contient une liste de note obtenues par des élèves dans différentes matières. Cette feuille s'appelle Détails Notes

Matière Classe Nom Note
Anglais 6 Paul 20
Anglais 5 Sylvie 18
Anglais 6 Simon 20
Anglais 6 Valentin 18
Math 6 Valentin 15
Math 6 Paul 16
Math 5 Sylvie 16
Math 6 Simon 13
Français 6 Paul 17
Français 5 Sylvie 14
Français 6 Simon 19
Français 6 Valentin 17

Dans une autre feuille appelée "Synthèse" j'affiche une synthèse des données contenues dans la feuille précédente

Matière Note > 15
Anglais 4
Français 3
Math 2

J'affiche par le biais d'une formule le nombre d'enregistrements correspondant aux critères de sélection, ici, nombre d'élèves ayant obtenu une note supérieure à 15 dans chacune des 3 matières.
Je souhaite affecter un lien hyperlink à chacune des valeurs retournées par mes formules de calcul et qu'en cliquant sur ce lien, j'arrive sur la feuille Détails note avec le filtre correspondant déjà appliqué.

Exemple : si je clique sur le 4 :

J'affiche la feuille Détails Note avec les valeurs suivantes :(soit toutes les notes d'Anglais supérieures à 15

Matière Classe Nom Note
Anglais 6 Paul 20
Anglais 5 Sylvie 18
Anglais 6 Simon 20
Anglais 6 Valentin 18

Est-ce que quelqu'un peut m'aider sur le sujet....je patauge depuis plusieurs jours...

Merci de votre aide.

François
 
G

Guest

Guest
Re : Lien hyperlink et filtre automatique

Bonjour FKMR, bienvenu sur le forum

Tu trouveras dans le fichier joint, un exemple avec macro.
Dans le module de code de la feuille "Synthèse" un appel à une macro qui se trouve dans Module1.

Regarder également les formules en B2:B4

Il aurait été plus facile de t'aider davantage avec un fichier exemle. De plus cela aurait évité d'avoir à reconstituer les données et formules pour les tests.

A bientôt

Hello PierreJean, top synchro aujourdhui()
 

FKRM

XLDnaute Nouveau
Re : Lien hyperlink et filtre automatique

Bonjour PierreJean
Bonjour Hasco,

Merci tout d'abord pour votre accueil sur le forum.
Les deux réponses que vous m'avez renvoyées sont parfaitement claires et correspondent tout à fait à ce que je voulais faire.

Merci pour votre réactivité et votre pédagogie.

La prochaine fois j'ajouterai un fichier exemple, ce sera effectivement plus rapide.

Bonne journée
 

FKRM

XLDnaute Nouveau
Re : Lien hyperlink et filtre automatique

Rebonjour à tous les deux,

J'ai attentivement regardé les exemples que vous m'avez envoyés.

Je ne comprends pas tout le code VBA associé et notamment la notion de target.column: (à quoi sert-elle exactement?)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column > 1 Then Exit Sub
If [C1] > 0 Then SuivreLien Target.Text, [C1]
End Sub

Pouvez-vous me donner quelques explications supplémentaires....

De plus, je souhaiterais que le lien soit affecté à la cellule contenant le résultat de la formule avec la fonction SUMPRODUCT et non pas à la cellule contenant la matière.

Est-ce possible ???

Merci encore pour votre aide et votre patience...

Francois
 

Pièces jointes

  • FKMR exemple 1.xls
    28 KB · Affichages: 96
G

Guest

Guest
Re : Lien hyperlink et filtre automatique

Re bonjour,

Voici ton fichier modifié, avec explication dans le code

J'ai créé une cellule (B1) qui contient la condition pour les valeurs limites des notes. C'est beaucoup plus simple à gérer que de traiter une chaine de caractère dont il faudrait extraire la condition.


A bientôt
 
Dernière modification par un modérateur:
G

Guest

Guest
Re : Lien hyperlink et filtre automatique

Re,

Petite question:
Dans la feuille synthèse, les formules des colonnes C et D ne peuvent pas refléter les conditions que tu donnes pour le filtre (Matière, Note).

Est-ce normal?

Sinon il modifier comme ceci pour la 6ème:

=SOMMEPROD((Matières=A3)*(Classe=6)*(Note>=$B$1))

A bientôt
 

FKRM

XLDnaute Nouveau
Re : Lien hyperlink et filtre automatique

Rebonjour,

Oui, c'est normal car le fichier que je vous ai donné est un cas exemple.

Ce que je dois faire est en fait beaucoup plus complexe et n'a pas grand chose à voir avec des notes d'école mais c'était pour moi, plus simple et plus rapide à expliquer.

Le code que tu m'as renvoyé tout à l'heure est beaucoup plus clair pour moi.

Il ne me reste plus qu'à coder en VBA ce que tu m'as transmis en espérant que j'arrive à reproduire en plus complexe la méthode que tu m'as donnée.

Merci encore pour tout.

Je reviendrai vers toi si je rencontre d'autres difficultés.

A bientôt

Francois
 

FKRM

XLDnaute Nouveau
Re : Lien hyperlink et filtre automatique

Bonjour Pierrejean,
Bonjour Hasco,

Grâce à votre aide, j'ai pu avancer mais je suis de nouveau bloqué.
En fait, le code que je développe en VBA sert à mettre en forme plusieurs fichiers .txt issus d'extractions de données de base de SAP.
J'ai donc un fichier excel contenant une macro qui récupère ces fichiers et les regroupent dans un nouveau classeur en les mettant en forme.
Les différentes feuilles de ce nouveau classeur, contiennent une liste d'incohérences sur les données que j'ai extraites (chacune des feuilles contenant un ou plusieurs types d'erreurs détectées avec quelques informations complémentaires servant à faciliter l'analyse de ces erreurs)
En fin de code, je crée une feuille synthèse qui dressent la liste exhaustive (le nombre par type d'erreur) des erreurs rencontrées dans chacune des feuilles. J'ai donc souhaité ajouté un lien hypertexte me permettant de rediriger l'utilisateur vers la feuille contenant le détails des erreurs en appliquant un filtre pour n'afficher que les données concernant le type d'erreur sur lequel l'utilisateur vient de cliquer.

J'ai réussi à générer en VBA la formule qui me permet de créer pour chacune des cellules de mon tableau synthèse le nombre d'erreurs correspondant à un type d'erreur donné et en même temps le lien hypertexte me permettant d'afficher le détail de cette erreur.

Le problème que je rencontre maintenant est l'activation de ce lien.
Le code que vous m'avez donné pour activer le lien (Worksheet_SelectionChange(ByVal Target As Range)) est positionné dans une feuille qui existe lors de la création du lien.
Dans mon code, les différentes feuilles sur lesquelles doivent pointer mes liens, sont créées lors de l'exécution de ma macro. Alors je ne sais pas comment faire et ou positionner mon code pour que le lien fonctionne.

Est-ce que vous pouvez m'aider sur le sujet ?

Merci pour votre aide.

Francois
 

pierrejean

XLDnaute Barbatruc
Re : Lien hyperlink et filtre automatique

Re

Une solution peut-etre

1) lors de la création des feuilles Nommer les dites feuilles avec une constante (par exemples Erreurs_type1 Erreurs_type2 etc)
2) mettre le code choisi dans un module standard avec en parametre le nom de la feuille (exemple Lien(nom_feuille) ).Ce code fera bien entendu reference a ce nom
3) Dans Thisworkbook et plus precisement dans
Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
mettre un appel a la macro:
If instr(Sh.Name, "Erreurs_") <> 0 then Call Lien (Sh.Name)
 
Dernière édition:

FKRM

XLDnaute Nouveau
Re : Lien hyperlink et filtre automatique

Bonjour Pierrejean,

Merci de votre réponse.

En fait, je suis un peu perdu. Je ne sais pas dans quel classeur je dois insérer le module dont tu vous me parler qui me permettra de rediriger l'utilisateur vers la bonne feuille en fonction de son choix.
Car une fois que j'ai généré ce nouveau classeur avec la feuille de synthèse et toutes les autres feuilles contenant les différentes erreurs rencontrées, je vais le sauvegarder et le fermer.
Quand l'utilisateur rouvrira ce classeur pour le consulter sans pour autant ouvrir le classeur contenant la macro qui génère le fichier , il faut que les hyperliens créés lors de la mise en forme du classeur fonctionnent correctement et ce même si le classeur contenant la macro de génération du fichier est fermé.

Tout ceci est un peu compliqué, je ne suis pas sûr d'être bien clair.

J'ai entendu parler sur les forums de code dynamique avec le mot clé WithEvents. Croyez vous que cela pourrait apporter une solution à mon problème ?

Merci de votre aide

Francois
 
G

Guest

Guest
Re : Lien hyperlink et filtre automatique

Bonjour FKRM, Le Forum,

Le plus simple serait de nous constituer un fichier avec un minimum d'information anonymisées qui nous permettent d'établir, comment sont construit les noms de feuilles, sur quelles colonnes se fait le filtrage etc, etc... et eventuellement la macro qui importe les données.

A bientôt
 

FKRM

XLDnaute Nouveau
Re : Lien hyperlink et filtre automatique

Rebonjour,

J'ai préparé deux fichiers avec le code et les données à analyser mais il ne passe pas même zippés.

Pouvez-vous me donner une adresse mail pour que je puisse vous les envoyer.

Merci.

Francois
 
G

Guest

Guest
Re : Lien hyperlink et filtre automatique

Bonsoir, FKRM

Dans le fichier de maintenance ci-joint tu trouveras dans:

Le module de code de la feuille 'MD Analysis' les modifications apportées à la procédures 'PreparationSynthese()' pour qu'elle s'exécute un peu plus rapidement. Si tu désire de plus amples explications. Dis le mois.

Un nouveau Module appelé 'mdlVbComponents' qui contient 2 macros pour créer automatiquement dans chaque nouveaux classeurs de synthèse:

1 - la procédure évènementielle SelectionChange des nouvelles feuilles 'Synthesis'

2 - un nouveau module 'mdlLiens' contenant la macro 'SuivreLien'

AVERTISSEMENT. La référence à 'Microsoft Visual Basic For Applications Extensibility 5.x' doit être cochée dans Menu Outils/Référence de l'éditeur de macro VBE. De plus le niveau de sécurité des macros doit être à 'Moyen'. Les macros de 'mdlVbComponents' ne doivent pas être appelées depuis un classeur qui contient déjà les macros qu'il crée=>

Pour tes tests:
1 - Sauvegarde ton travail avant les tests.
2 - assures toi que le classeur synthèse ne contient pas de procédure SelectionChange de la feuille 'Synthesis' ou le module 'mdlLiens'

A bientôt
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 322
Membres
103 178
dernier inscrit
BERSEB50