MACRO : masquer lignes suivant triple condition [Résolu/Fermé]

Signaler
Messages postés
2
Date d'inscription
vendredi 3 janvier 2014
Statut
Membre
Dernière intervention
6 janvier 2014
-
Messages postés
2
Date d'inscription
vendredi 3 janvier 2014
Statut
Membre
Dernière intervention
6 janvier 2014
-
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.

3 réponses

Messages postés
9572
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
28 septembre 2020
1 905
Bonjour

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

Cdlmnt
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60769 internautes nous ont dit merci ce mois-ci

Messages postés
1235
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
155
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60769 internautes nous ont dit merci ce mois-ci

Messages postés
2
Date d'inscription
vendredi 3 janvier 2014
Statut
Membre
Dernière intervention
6 janvier 2014

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 !