Recherche et compilation de données

Bonjour,

12choix-film.xlsm (21.27 Ko)

je suis debutant en VBA, je voudrais faire un programme de recherche et de compilation de données.

J'ai crée un tableau listant les films que je posséde. a chaque film est attribué deux genre lui correspondant (en mettant la valeur de 1 dans la colonne genre correspondant a la ligne du film), ce que je vouidrais cest entré deux genre de filkm et que le programme me donne les film (leur position dans la colonne titre).j'ai deja commencer cette partie mais pour je ne sais quelle raison elle ne fonctionne pas vraiment .

Le plus serais de crée un tableau de taille variable dans lequel on trouverais la liste de films satisfaisant a la demande.

Voila, je vous joint le fichier de ce que jai fait .

En vous remerciant de vos reponse par avance.

5choix-film.xlsm (27.51 Ko)

Bonjour,

choisis les genres en A2:B2 pour filtrer.
J'ai supposé genre1 ET genre2 et non pas OU.

Vider A2:B2 pour tout afficher.
Code dans Feuil1
eric

Merci beaucoup Eriiic,

jai essayer de lire ce que tu a fait mais je tavoue que je ne comprend pas trop.

Si tu avais 5min pour m'expliquer ou mettre des commentaire sur tes ligne je ten serais vraiment tres reconnaissant et j'en resortirais eclairé .

Encore merci.

Bonsoir le fil, bonsoir le forum,

En pièce jointe une proposition avec une UserForm. Code commenté. Clique sur le bouton Genres de Films...

5timon-ep-v01.xlsm (31.81 Ko)

[Édition]

J'ai regardé la proposition d'Éric. J'suis vert !...

Bonjour

Bonjour à tous

Une variante.

6choix-film-v1.xlsm (33.19 Ko)

Bye !

Bonjour,

Merci beaucoup Eriiic,

jai essayer de lire ce que tu a fait mais je tavoue que je ne comprend pas trop.

pas avant cette am.
Mais déjà l'as-tu fait fonctionner et est-ce que cela convient ?
eric

Bonjour,

je vous remercie a tous davoir repondu, vos solution sont toutes satisfaisante, je vous en remercie beaucoup.

Eriiic, jaime beaucoup ta solution, elle est vraiment simple et n'engendre pas de fenetres annexe.

bonne journée a tous et encore merci.

Re,

le code commenté

Private Sub Worksheet_Change(ByVal Target As Range)
    Const genre As String = "$D$5:$AF$5" ' plage des noms des genres
    Dim datas, lig As Long, ok As Long
    Dim genre1 As Long, genre2 As Long, plGenre As Range
    If Not Intersect(Target, Range("A2:B2")) Is Nothing Then
        ' si un filtre change
        Rows.Hidden = False ' afficher tout
        If Application.CountA("A1:B1") <> 0 Then
            ' si au moins un filtre non vide
            datas = [A6:AF6].Resize(Cells(Rows.Count, 1).End(xlUp).Row - 5) 'données films
            ' si filtre non vide on recherche la colonne du filtre demandé
            If [A2] <> "" Then genre1 = Rows(5).Find([A2].Value, , xlFormulas, xlWhole).Column
            If [B2] <> "" Then genre2 = Rows(5).Find([B2].Value, , xlFormulas, xlWhole).Column
            For lig = 1 To UBound(datas)
                ' un filtre => ok+1 si vide ou genre = 1 sur la ligne
                If genre1 = 0 Then ok = 1 Else ok = datas(lig, genre1)
                If genre2 = 0 Then ok = ok + 1 Else ok = ok + datas(lig, genre2)
                ' masquer ligne si total filtres <> 2
                Rows(lig + 5).Hidden = ok <> 2
            Next lig
        End If
    End If
End Sub

vois si suffisant pour toi
eric

Rechercher des sujets similaires à "recherche compilation donnees"