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 -
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.
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:
- MACRO : masquer lignes suivant triple condition
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro maker - Télécharger - Divers Utilitaires
- Macro word - Guide
3 réponses
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 :-)
A+
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+