XL 2016 [RESOLU] - Rechercher et afficher des informations

senpan

XLDnaute Junior
Bonjour à tous,

Dans la construction d'un fichier ("c'est évident, chef !"), j'ai besoin d'afficher des informations dans une autre feuille intitulée 'Fiche artiste'.
Les informations sont issues d'une recherche avec en fin de ligne à droite une cellule contenant "voir la fiche".

Le but est de pouvoir cliquer sur "voir la fiche" et d'afficher les informations de la ligne correspondante dans la feuille nommée 'Fiche artiste'.
En effet, des colonnes sont masquées pour une meilleure lisibilité.
La feuille 'Fiche artiste' sera alors utilisée pour permettre à l'utilisateur d'avoir toutes les informations concernant l'artiste sous les yeux ("aille aille les cernes bien remplis").

En pièce-jointe le fichier pour mieux comprendre.


Merci d'avance pour votre aide.
 

Pièces jointes

  • fiche_artiste.xlsx
    1 MB · Affichages: 74

DoubleZero

XLDnaute Barbatruc
Bonjour, senpan, le Forum,
... pouvoir cliquer sur "voir la fiche" et d'afficher les informations de la ligne correspondante...
Insérer le code ci-après dans le module de l'onglet "RECHERCHE". Action par clic double en colonne x.
VB:
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal c As Range, Cancel As Boolean)
    Dim o As Object
    Set o = Sheets("Fiche artiste")
    If c.Column = 24 And c.Row > 5 And c > 0 Then
        c.Offset(, -22).Copy o.Range("b4")
        c.Offset(, -21).Copy o.[b7]
        c.Offset(, -20).Copy o.[b11]
        c.Offset(, -19).Copy o.[b13:c13]
        c.Offset(, -18).Copy o.[b15]
        c.Offset(, -17).Copy o.[c15]
        c.Offset(, -16).Copy o.[c11]
        c.Offset(, -13).Copy o.[e4]
        c.Offset(, -12).Copy o.[f4]
        c.Offset(, -11).Copy o.[g4]
        c.Offset(, -10).Copy o.[e7]
        c.Offset(, -9).Copy o.[f7]
        c.Offset(, -8).Copy o.[e11]
        c.Offset(, -7).Copy o.[f11]
        c.Offset(, -6).Copy o.[g11]
        c.Offset(, -3).Copy o.[f14]
        c.Offset(, -2).Copy o.[b18:c18]
        c.Offset(, -1).Copy o.[e18:g18]
    End If
    o.Activate
End Sub
A bientôt :)
 

senpan

XLDnaute Junior
Merci BoubleZero !
Les cellules sont décalées mais j'ai effectué la correction et compris le code (pour une fois ! ;) )

Je vais être un peu chiant (pour pas changer) mais est-il possible de ne pas avoir la mise en forme lors du coller dans la feuille "Fiche artiste" ? Ça je ne sais pas du tout comment faire !
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Je propose dans RECHERCHE :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <> 24 Then Exit Sub
Target.EntireRow.Name = "LSel"
Feuil1.Activate
End Sub
et par exemple en B4 :
Code:
=RECHERCHE!B:B LSel
 

senpan

XLDnaute Junior
Merci à toi Dranreb pour ton aide.

J'ai résolu le problème de la mise en forme et adopté le code de DoubleZero (qui à ma préférence).


Je ne manquerai pas de revenir vers vous pour un autre sujet (à venir sous peu).

PS : avec l'aide de tous, j'ai pas mal avancé sur le projet.
 

senpan

XLDnaute Junior
Bonjour à tous,

Dans le feuille RECHERCHE du fichier joint, j'ai deux soucis.
La macro qui permet d'effacer les critères de recherche ne fonctionne pas correctement.
Cela devrait effacer les cellules B3, C3 et H3. Or rien ne se passe pour la cellule B3.

Autre problème, la liste de choix en C3 ne fonctionne pas. Je suis passé par le Gestionnaire de noms afin de créer une formule qui porte le de "CATdeux".
Mais comme vous pouvez vous en douter, elle ne fonctionne pas.

Résultat des deux problèmes, la recherche ne fonctionne pas comme elle le devrait.

Voici le fonctionnement souhaité :
Aucun critère : affichage d'un message indiquant que les deux premières catégories sont obligatoires
CATEGORIE et SOUS-CATEGORIE 1 : affichage des résultats
Tous les catégories sélectionnées : affichage des résultats.

En pièce-jointe le fichier concernant mon problème.

Encore une fois, merci d'avance à tous pour votre aide.
 

Pièces jointes

  • EXCEL_FORUM__search.xlsm
    1.1 MB · Affichages: 48

job75

XLDnaute Barbatruc
Bonjour senpan,
Personne pour aider ?
Votre fichier fait fuir avec ses macros compliquées et plein de noms définis mal fichus !!!

Pour la formule du nom CATdeux il faut remplacer BDD!$C$4:$I$4 par BDD!$C$3:$I$3

Et pour la macro SUPPRfiltres il suffit d'écrire :

Code:
Sub SUPPRfiltres()
With Sheets("RECHERCHE")
    .Protect UserinterfaceOnly:=True 'feuille protégée sauf pour les macros
    .Range("B3:H3") = ""
    .Rows("6:" & .Rows.Count).Delete
End With
End Sub
On ne vous a jamais dit qu'en VBA il faut éviter les .Select ??? Vous vous en abusez vraiment.

A+
 
Dernière édition:

senpan

XLDnaute Junior
Merci pour votre aide.
En ce qui concerne les "noms définis mal fichus", ils me permettent d'y voir clair. Ils veulent dire ce qu'ils veulent dire.

Pour CATdeux, il faut que j’achète des lunettes... :oops:

Pour les .Select, c'est le gros défaut de l’enregistreur de macro. Hé voui!, la plupart des macros sont réalisées avec l'enregistreur. J'ai dit la plupart.

Apprendre la programmation est tout un art et un mé-ti-er.
Donc avoir les bonnes pratiques lorsque l'on pratique tout seul c’est compliqué.
 

Discussions similaires

Statistiques des forums

Discussions
312 201
Messages
2 086 170
Membres
103 151
dernier inscrit
nassim