Condition if avec 2 critères concernant 2 colonnes code VBA

bonjour à tous,

j'aurai besoin une petite aide en code VBA.

j'expose mon pb:

j'ai plusieurs colonnes mais pour ma macro mais condition concerne les colonnes AL et AO.

Dans la colonne AO les valeurs sont : "NON", "OUI" ou " ".

Dans la colonne AL les valeurs sont : "texte" ou " "

Je souhaite afficher toutes les lignes dont la colonne AL = "NON" ou AL<> de Vide et masquer le reste.

Merci de votre aide

Bonjour

Un test

14fel.xlsm (15.60 Ko)

Bonjour M12, merci pour réponse rapide.

En fait dans ton exemple seul les lignes 4,5 et 19 doivent être masquer.

Les lignes doivent être afficher dès qu'on a soit du texte dans la colonne "AL" soit "Non" dans la colonne "AO".

Re,

Comme ceci

Sub Test()
  Dim i%, Dl%
  Dl = ActiveSheet.Range("AL" & Rows.Count).End(xlUp).Row
  For i = 2 To Dl
    If Cells(i, "AL") <> "" Or Cells(i, "AO") <> "Oui" Then
      Rows(i).EntireRow.Hidden = True
    End If
  Next i
End Sub

j'ai essayer ton code il a supprimé toutes les lignes sans exception.

Re,

Sub Test()
  Dim i%, Dl%
  Dl = ActiveSheet.Range("AL" & Rows.Count).End(xlUp).Row
  For i = 2 To Dl
    If Cells(i, "AL") = "" And Cells(i, "AO") = "Oui" Then
      Rows(i).EntireRow.Hidden = True
    End If
  Next i
End Sub

Sur ton exemple ça fonctionne nickel mais pas sur mon fichier et je ne comprends pas pourquoi.

je te joins mon fichier . Le code est dans l'onglet "planning directeur"/bouton "planning"/bouton "Modification à statuer".

Re,

Normal

De ta demande au 1er post

Dans la colonne AO les valeurs sont : "NON", "OUI" ou " ".

Dans la colonne AL les valeurs sont : "texte" ou " "

et en réalité c'est l'inverse sur ton fichier

Sub Test()
  Dim i%, Dl%
  Dl = ActiveSheet.Range("AL" & Rows.Count).End(xlUp).Row
  For i = 2 To Dl
    If Cells(i, "AL") = "Oui" And  Cells(i, "AO") = "" Then
      Rows(i).EntireRow.Hidden = True
    End If
  Next i
End Sub

nickel ca marche mais par contre quand AL = vide et OL = vide il ne masque pas

Merci M12, c'est tout marche nickel.

si je veux défiltrer les colonnes AL et AO. Comment dois je faire?

J'ai appliqué ce code mais cela ne fonctionne pas

ActiveSheet.Range("$AL$1:$AO$1").AutoFilter
ActiveSheet.Range("$AL$1:$AO$1").AutoFilter

Re,

A tester, sur le bouton de modification, son caption change suivant l'état de la feuille et permet de masquer ou démasquer

Merci beaucoup pour toute votre aide. Tout fonctionne à merveille.

Rechercher des sujets similaires à "condition criteres concernant colonnes code vba"