XL 2010 Recherche multi-critères

Durand Damien

XLDnaute Nouveau
Bonjour, tout d'abord je tien à vous féliciter pour ce forum que je viens de découvrir. j'ai déjà appris beaucoup de choses. Je tiens aussi à m'excuser dans le cas ou ma demande aurait déjà été traitée sur une autre sujet. j'ai cherché mais rien trouvé qui s'en rapproche.

Voila mon problème:

Je souhaite à partir de mon fichier faire une recherche de personne pour lesquelles il manque une couleur à condition uniquement qu'elles aient au moins une nuance de cette couleur et que cela s'affiche dans la case résultats.
je m'explique, Bernard possède le bleu foncé et donc il lui manque bleu clair. donc je souhaite voir afficher automatiquement "Bernard Bleu clair" dans la case résultats.

Ainsi si je prend mon fichier je devrais avoir au final dans la case résultat en:
H3 : Bernard bleu clair ; Julien Bleu foncé
H6 : Bernard jaune pale jaune foncé; Evelyne Jaune clair.

J'espère que cela est faisable par une formule ou une macro (sachant que le fichier original possède déjà une macro permettant de filtrer par colonne).
Dans l'attente d'une réponse pour raison professionnelle je vous remercie de prendre attention à ce sujet.
 

Pièces jointes

  • test matrice.xlsx
    14.2 KB · Affichages: 45

youky(BJ)

XLDnaute Barbatruc
Ma femme est née Durand et mon fils je l'ai appelé Damien
Alors j'ai mis les bouchées double.
Dire que j'ai plus mis les pieds à l’île Dorée depuis que le pont existe et que je n'ai jamais vu.
A + pour un autre épisode
Bruno
 

Durand Damien

XLDnaute Nouveau
Désolé de ré-ouvrir le sujet, mais ma collègue à travaillé sur le tableau et désormais la macro ne marche plus.

Quand je la lance ca me met "Erreur de compilation : variable non définie" et du coup ca me surligne "Sub myviolet()" en jaune et sélectionne "bas ="

j'ai essayé de décortiquer le code de mon coté mais je ne vois pas d'ou ca vient
 

youky(BJ)

XLDnaute Barbatruc
Salut bien Damien,
Perso j'ai pris une mauvaise habitude c'est de ne pas déclarer mes variables
Je supprime si besoin Option Explicite en haut du module.
Donc si il y a option explicite il faut déclarer la variable "bas"
Ajouter en haut de macro
Dim bas, lig, col, n, k, i
Dim tx as String

Bruno
 

Durand Damien

XLDnaute Nouveau
ça ne marche pas.

en gros je part du même principe, sauf que désormais j'ai intégré la valeur "0" dans les cases pour les personnes ayant besoin d'être formé au dit document. j'ai réussi à faire en sorte que ça le prenne pour les modules ou il y a bien plusieurs documents, mais j'aimerais aussi que la liste apparaisse dans les modules n'ayant qu'une seule ligne.

je t'envoi mon doc de travail
 

Pièces jointes

  • test matrice.xlsm
    224 KB · Affichages: 26

Durand Damien

XLDnaute Nouveau
non t’inquiète, pour ces lignes la pas besoin de t'en occuper c'est normal. ta matrice marche déjà très bien pour le cas des modules à plus d'1 document. je voudrais juste pouvoir rajouter le cas du module à 1 doc et voir apparaître dans la case de droite les personnes ayant besoin d’être formées (celle qui ont 0 ou 1).
 

youky(BJ)

XLDnaute Barbatruc
Macro à tester
avant je prenais que les 2 et 3 maintenant c'est tous 0-1-2-3
A voir si c'est cela que tu attends
Bruno
VB:
Sub myviolet()
Dim t(50, 2)
Dim nl(50)
Dim kit As Boolean
bas = [D65000].End(3).Row
Range("CM33:CM" & bas) = ""
For k = 33 To bas
i = i + 1
t(i, 1) = k
n = Application.Range("CM" & k).MergeArea.Rows.Count
k = k + n - 1
t(i, 2) = k
nl(i) = n
Next
'''''''''''''''''''''''''on test col 5 à 84 soit E à CF
For col = 5 To 84
For k = 1 To i
tx = ""
If nl(k) > 1 Then
If Application.CountA(Range(Cells(t(k, 1), col), Cells(t(k, 2), col))) > 0 Then
'If Application.CountIf(Range(Cells(t(k, 1), col), Cells(t(k, 2), col)), 2) > 0 Or _
Application.CountIf(Range(Cells(t(k, 1), col), Cells(t(k, 2), col)), 3) > 0 Then
For lig = t(k, 1) To t(k, 2)
If Cells(lig, col) = "" Or Left(Cells(lig, col), 1) = 1 Or Left(Cells(lig, col), 1) = 0 Then tx = tx & "," & Cells(lig, 4)
Next
If tx <> "" Then Cells(t(k, 1), "CM") = Cells(t(k, 1), "CM") & " " & Cells(1, col) & tx
End If
End If
Next
Next
End Sub
 

Durand Damien

XLDnaute Nouveau
alors, dans l'idée c'est ca. sauf que maintenant pour les modules comprenant plusieurs doc, le résultat dans la colonne rosée me donne les noms que pour le premier doc de chaque module

en CM34 je dois avoir : a1,doc30,doc31 a10,doc32 a12,doc30,doc32 a15,doc31,doc32 a19,doc30 a36,doc30 a38,doc31,doc32 a44,doc31,doc32
 

Discussions similaires

Statistiques des forums

Discussions
312 103
Messages
2 085 325
Membres
102 862
dernier inscrit
Emma35400