Bonjour,
Je débute sur VBA Excel (voire VBA tout court ^^) donc ne m'en veuillez pas si j'ai du mal à m'exprimer...
J'ai une facture sous excel qui fallait rendre moins touffue.
La solution : une macro afficher toutes les cellules :
J'ai trouvé ce code en farfouillant un peu, il y a peut être plus facile...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Sub AFFICHER() Dim cellule As Range For Each cellule In Union(Range("E32:e35"), Range("e39:e43"), Range("e47:e48"), Range("e52"), Range("e55")) cellule.EntireRow.Hidden = False Next cellule End Sub
Ensuite une macro qui permet de masquer des lignes qui contiennent un cellule de référence vide (une quantité) :
Ca fonctionne bien, j'ai rajouté des boutons sur la feuille et ca marche aussi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Sub MASQUER() Dim cellule As Range For Each cellule In Union(Range("E32:e35"), Range("e39:e43"), Range("e47:e48"), Range("e52"), Range("e55")) If cellule.Value = "" Then cellule.EntireRow.Hidden = True End If Next cellule End Sub
J'aimerai rajouter dans le code un autre critère que "", par exemple 0.
Si la cellule est vide ou contient un 0 alors il faut la masquer.
J'ai essayé avec Or mais ca ne masque pas la ligne ou la cellule de réf contient 0, seulement si c'est vide.
Ensuite, l'idéal serait de pouvoir automatiser le code AFFICHER à l'ouverture du classeur.
J'ai bien trouvé en cherchant le code :
Mais ca ne marche pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Private Sub Workbook_Open() Dim cellule As Range For Each cellule In Union(Range("E32:e35"), Range("e39:e43"), Range("e47:e48"), Range("e52"), Range("e55")) cellule.EntireRow.Hidden = False Next cellule End Sub
De même j'aimerai pouvoir automatiser le code MASQUER lors de l'impression :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Private Sub Workbook_BeforePrint(Cancel As Boolean) Dim cellule As Range For Each cellule In Union(Range("E32:e35"), Range("e39:e43"), Range("e47:e48"), Range("e52"), Range("e55")) If cellule.Value = "" Then cellule.EntireRow.Hidden = True End If Next cellule End Sub
Merci d'avance pour le coup de main.
Partager