MACRO : masquer lignes suivant triple condition

Résolu
Guillaume.COPA Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
Guillaume.COPA Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

1ère intervention sur ce forum car je m'arrache les cheveux... Je me débrouille en VBA grâce à l'enregistrement de macro ou en décortiquant celles trouvées sur la toile afin d'arriver à ce que je souhaite... Sauf aujourd'hui !

Mon cas concret : feuille d'environ 400 lignes évolutives. Objectif : n'afficher qu'un certain nombre de ligne remplissant 3 conditions :
- Cellule de la colonne B = non vide
- Cellule de la colonne K = vide
- Cellule de la colonne G < aujourdhui()-7

C'est un tableau de suivi de commande, je souhaite faire apparaitre uniquement les commandes des lignes sur lesquelles je n'ai pas reçu de confirmation de la part du fournisseur pour des commandes datant de + de 7jrs

Voila ce que j'ai écrit à ce jour :

Sub blabla()
Application.ScreenUpdating = False

For i = 6 To 855

If Cells(i, 2) <> "" And Cells(i, 11) = "" And Cells(i, 7) < Sheets(PARAM.Cells(12, 3)) Then
Rows(i).Select
Selection.EntireRow.Hidden = False

End If

Next i

Application.ScreenUpdating = True

End Sub


=> Sheets(PARAM.Cells(12, 3)) = correspond à une formule =aujourdhui()-7 dans la feuille 'PARAM' (je ne suis pas très que le format d'écriture convienne...)

Cela ne fonctionne pas du tout comme je le souhaiterais. Je brode autour mais cela me renvoie toujours des erreurs.

Je ne souhaite pas passer par la solution filtre. J'ai d'autres macros tournant autour de ça et le résultat n'est pas satisfaisant...

Merci de m'avoir lu jusque là et en attente de vos idées lumineuses !

Guillaume.
A voir également:

3 réponses

ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bonjour

Un début de réponse
https://www.cjoint.com/?3AdrcPdf6D2

Cdlmnt
1
Morgothal Messages postés 1236 Date d'inscription   Statut Membre Dernière intervention   183
 
Bonjour,
Je n'ai pas regardé la réponse de ccm81 (que je salue), mais cette macro fonctionne très bien chez moi en tout cas :-)

Sub blabla()
Application.ScreenUpdating = False

For i = 2 To 20

If (Cells(i, 2) <> "" And Cells(i, 11) <> "") _
Or (Cells(i, 2) <> "" And Cells(i, 11) = "" And Cells(i, 7) >= Date - 7) Then

Rows(i).Hidden = True

End If

Next i

Application.ScreenUpdating = True

End Sub 

A+
1
Guillaume.COPA Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Merci à tous les deux, je vais étudier ça dès que j'ai un creux dans mon planning.

Les macros me plaisent, courtes rapide et concises. Cela correspond exactement à ce qu'il me fallait !
0