MACRO : masquer lignes suivant triple condition

Résolu/Fermé
Guillaume.COPA Messages postés 2 Date d'inscription vendredi 3 janvier 2014 Statut Membre Dernière intervention 6 janvier 2014 - 3 janv. 2014 à 14:57
Guillaume.COPA Messages postés 2 Date d'inscription vendredi 3 janvier 2014 Statut Membre Dernière intervention 6 janvier 2014 - 6 janv. 2014 à 09:07
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 10899 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 25 octobre 2024 2 422
3 janv. 2014 à 17:03
Bonjour

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

Cdlmnt
1
Morgothal Messages postés 1236 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 19 mai 2015 183
3 janv. 2014 à 17:04
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 vendredi 3 janvier 2014 Statut Membre Dernière intervention 6 janvier 2014
6 janv. 2014 à 09:07
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