Masquer des lignes selon couleur sans modifier le résultat ...
Laeti3112
-
Laeti3112 -
Laeti3112 -
Bonjour,
J'utilise cette formule afin de masquer dans mon tableau toutes mes lignes rouges (colorisées manuellement sans MFC) :
Sub test()
Dim X As Long
Rows.Hidden = False
For X = 1 To [A65536].End(xlUp).Row
If Range("A" & X).Interior.ColorIndex = 3 Then _
Rows(X).Hidden = True
Next X
End Sub
Jusque là tout va bien!
Le hic c'est que le montant de ces lignes rouges est pris en compte pour faire un total (en effet lignes rouges dans mon tableau = paiements débités). Et que lorsque j'applique ma formule ci dessus, le montant de mes totaux débités disparaît pour afficher #VALEUR!
Je calcule le montant de mon total débités avec cette formule :
Function SommeSiCouleur(Plage As Range, NumeroDeCouleur%) As Currency
Application.Volatile True
Dim wCell As Range
For Each wCell In Plage
If wCell.Interior.ColorIndex = NumeroDeCouleur Then
SommeSiCouleur = SommeSiCouleur + wCell.Value
End If
Next
End Function
'Formule à insérer dans cellule pour appeler la fonction
'=SommeSiCouleur($C$1:$C$34;3)
Ma question : comment masquer les lignes rouges de mon tableau sans pour autant affecter le calcul de leur montant total...
NB : Je précise que si je fais manuellement clic droit "masquer" sur les lignes rouges, elles disparaissent et mon montant n'est pas affecté...
Merci pour votre aide !!!
Cordialement+++
J'utilise cette formule afin de masquer dans mon tableau toutes mes lignes rouges (colorisées manuellement sans MFC) :
Sub test()
Dim X As Long
Rows.Hidden = False
For X = 1 To [A65536].End(xlUp).Row
If Range("A" & X).Interior.ColorIndex = 3 Then _
Rows(X).Hidden = True
Next X
End Sub
Jusque là tout va bien!
Le hic c'est que le montant de ces lignes rouges est pris en compte pour faire un total (en effet lignes rouges dans mon tableau = paiements débités). Et que lorsque j'applique ma formule ci dessus, le montant de mes totaux débités disparaît pour afficher #VALEUR!
Je calcule le montant de mon total débités avec cette formule :
Function SommeSiCouleur(Plage As Range, NumeroDeCouleur%) As Currency
Application.Volatile True
Dim wCell As Range
For Each wCell In Plage
If wCell.Interior.ColorIndex = NumeroDeCouleur Then
SommeSiCouleur = SommeSiCouleur + wCell.Value
End If
Next
End Function
'Formule à insérer dans cellule pour appeler la fonction
'=SommeSiCouleur($C$1:$C$34;3)
Ma question : comment masquer les lignes rouges de mon tableau sans pour autant affecter le calcul de leur montant total...
NB : Je précise que si je fais manuellement clic droit "masquer" sur les lignes rouges, elles disparaissent et mon montant n'est pas affecté...
Merci pour votre aide !!!
Cordialement+++
A voir également:
- Masquer des lignes selon couleur sans modifier le résultat ...
- Modifier dns - Guide
- Modifier liste déroulante excel - Guide
- Resultat foot - Télécharger - Vie quotidienne
- Modifier couleur barre des taches windows 11 - Guide
- Modifier story facebook - Guide
3 réponses
Bonjour,
Merci de déposer le fichier xls (réduit au nécessaire et anonymisé) sur cjoint.com et coller ici le lien fourni.
eric
Merci de déposer le fichier xls (réduit au nécessaire et anonymisé) sur cjoint.com et coller ici le lien fourni.
eric
Ta fonction, volatile, est appelée inutilement à chaque masquage de ligne.
Et à cet instant .interior n'est pas lisible.
Tu peux suspendre les calculs et les rétablir ensuite :
eric
PS: utilise la balise (icone : <>) pour mettre en forme ton code ici.
Et à cet instant .interior n'est pas lisible.
Tu peux suspendre les calculs et les rétablir ensuite :
Sub masquage()
Dim X As Long
Rows.Hidden = False
'affichage de toutes les lignes
Application.Calculation = xlCalculationManual
For X = 1 To [A65536].End(xlUp).Row
'pour x= 4 à dernière ligne non-vide en A
If Range("A" & X).Interior.ColorIndex = 22 Then _
Rows(X).Hidden = True
'si le fond de la cellule Ax = 17 ou
'si le fond de la cellule Ax = 28 alors
'masquage ligne x = vrai
Next X
'X suivant
Application.Calculation = xlCalculationAutomatic
End Sub
eric
PS: utilise la balise (icone : <>) pour mettre en forme ton code ici.
Voici le lien :
http://www.cjoint.com/c/EGrnD5Eh1FN