C
Chris
Guest
Bonjour à tous,
J'ai un petit souci avec une macro excel. Dans une feuille excel (voir fichier .zip), j'ai 3 tableaux 'A6:H45', 'A50:H89' et 'A94:H133'. Pour chaque tableau je souhaite pouvoir réaliser les 2 opérations ci-dessous :
1/ Masquer les lignes lorsque les cellules (A à H) sont vides ou = 0;
2/ Trier chaque tableau par ordre croissant en fonction des valeurs de la colonne D.
J'ai monté la macro ci-dessous qui semble fonctionner pour masquer les lignes dans le tableau 'A6:H45'. Mais je n'arrive pas à enchainer mon développement pour les 2 autres tableaux et le tri associé.
Sub Masquer_Lignes_Conditionnel()
' Cette macro permet de masquer les lignes A6 à H45, A50 à A89,
' A94 à A133 lorsque la valeur de la ligne correspondante = 0
' ou est vide
Dim valeur As Range, vide As String, c As Byte
For Each valeur In Range('A6:H45')
If (valeur.Column > 0 And valeur.Column < 9) _
Then
If valeur = vide Or valeur = 0 Then c = c + 1
If valeur.Column = 8 And c = 8 Then
Rows('' & valeur.Row & ':' & valeur.Row & '').EntireRow.Hidden = True
End If
End If
If valeur.Column = 8 Then c = 0
Next
End Sub
Avez-vous une solution à me proposer ?
Merci à tous de votre aide et bon WE.
Chris. [file name=MasquerLignes.zip size=9307]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/MasquerLignes.zip[/file]
J'ai un petit souci avec une macro excel. Dans une feuille excel (voir fichier .zip), j'ai 3 tableaux 'A6:H45', 'A50:H89' et 'A94:H133'. Pour chaque tableau je souhaite pouvoir réaliser les 2 opérations ci-dessous :
1/ Masquer les lignes lorsque les cellules (A à H) sont vides ou = 0;
2/ Trier chaque tableau par ordre croissant en fonction des valeurs de la colonne D.
J'ai monté la macro ci-dessous qui semble fonctionner pour masquer les lignes dans le tableau 'A6:H45'. Mais je n'arrive pas à enchainer mon développement pour les 2 autres tableaux et le tri associé.
Sub Masquer_Lignes_Conditionnel()
' Cette macro permet de masquer les lignes A6 à H45, A50 à A89,
' A94 à A133 lorsque la valeur de la ligne correspondante = 0
' ou est vide
Dim valeur As Range, vide As String, c As Byte
For Each valeur In Range('A6:H45')
If (valeur.Column > 0 And valeur.Column < 9) _
Then
If valeur = vide Or valeur = 0 Then c = c + 1
If valeur.Column = 8 And c = 8 Then
Rows('' & valeur.Row & ':' & valeur.Row & '').EntireRow.Hidden = True
End If
End If
If valeur.Column = 8 Then c = 0
Next
End Sub
Avez-vous une solution à me proposer ?
Merci à tous de votre aide et bon WE.
Chris. [file name=MasquerLignes.zip size=9307]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/MasquerLignes.zip[/file]