Ligne à masquer en fonction de trois critères

bonsoir à toutes et à tous,

Après de multiples recherches sur ce site, et même sur d'autres je n'ai pas trouvé la réponse à mon problème.

Voici ce problème :

J'ai une BD, qui possède pour le moment 3000 lignes environ, mais cette plage est appelée à évoluée.

J'ai également 25 colonnes environ, qui elles n'évolueront pas.

En cellule A1, A2, A3, j'ai un critère dans chaque cellule (donc 3 au total), je voudrai que si ces 3 critères n'apparaissent pas dans les cellules de la ligne, celle-ci soit masquée, est ceci sur l'ensemble des lignes de la plage qui ne contiennent pas ces trois critères, comme le fait un filtre, sauf que le système de filtre Excel fonction sur une, voir deux colonnes, mais pas sur 25.

Si parmi vous quelqu'un aurait la solution à mon problème, je suis preneur.

Merci d'avance.

Cordialement

Dubdub22

Salut dubdub22,

  • quels critères ?
  • ces critères sont-ils définitifs en ce qui concerne ces lignes ?
  • ces lignes doivent-elles "réapparaître" si ces critères venaient à changer sur une nouvelle ligne ?
  • ces lignes sont-elles déjà cachées ou faut-il prévoir un traitement global ?
...

Je continue ?

Faudra apprendre à donner des infos claires, précises ET complètes !

A+

Bonsoir Curulis57

- ces critères sont-ils définitifs en ce qui concerne ces lignes ?

Réponse : NON ceux-ci sont modifiables

- ces lignes doivent-elles "réapparaître" si ces critères venaient à changer sur une nouvelle ligne ?

Réponse : OUI

- ces lignes sont-elles déjà cachées ou faut-il prévoir un traitement global ?

Réponse : NON ces lignes ne sont pas cachées, c'est une base données que j'alimente fréquemment, c'est pour cela qu'elles doivent êtres visibles, et que je modifie les critères en fonction des évènements.

Merci de ton aide

Cordialement

Dubdub22

Salut dubdub22,

ce ne sera certainement pas top car je n'ai pas les infos complètes mais le principe est là.

La ligne 1 contient tes critères qui provoquent le masquage ou non des lignes en-dessous : change les chiffres pour tester...

Private Sub Worksheet_Change(ByVal Target As Range)
'
Application.ScreenUpdating = False
'
If Not Intersect(Target, Range("A1:C1")) Is Nothing Then
    For x = 3 To Range("A" & Rows.Count).End(xlUp).Row
        Rows(x).Hidden = IIf(Cells(x, 1) = [A1] And Cells(x, 2) = [B1] And Cells(x, 3) = [C1], True, False)
    Next
End If
'
Application.ScreenUpdating = True
'
End Sub

A+

9dubdub22.xlsm (18.86 Ko)

Bonjour Curulis57

Cela fonctionne, sauf que cela fait l'inverse de ce que je souhaite arriver, si tu fait par exemple 5,6,7, le code masque les lignes qui contiennent 5,6,7, alors que le but est inverse, je voudrai qu'il affiche les lignes ayant 5,6,7, et masque les autres.

Mais comme tu dis, tu n'as pas de fichier exemple, néanmoins ton fichier c'est exactement pareil, sauf que le miens est un peu plus gros, c'est pourquoi je ne l'ai pas joint.

Merci quand même pour ton aide

Cordialement

Dubdub22

Bonjour Dubdub22, Curulis57,

Dans le code proposé par Curulis57.

Simplement, inverse les booléens True et False dans la boucle x.

Ou seconde solution remplace le = situé avant A1, B1, C1 par le <> dans cette même boucle.

Cordialement.

Bonjour Curulis57 et X Cellus

Merci à Curulis pour son code, et merci également à toi X cellus de m'avoir indiqué ce qu'il fallait faire, j'ai suivi ta première suggestion, j'ai inversé les 2 booléens.

Un grand merci à vous deux, je peux mettre le sujet en résolu.

Bien cordialement à vous

Dubdub22

Rechercher des sujets similaires à "ligne masquer fonction trois criteres"