OVH Cloud OVH Cloud

Tab croisé dynamique supprimer les 0

2 réponses
Avatar
Michael
Bonjour,

voici mon probl=E8me:
J'ai un tableau crois=E9 dynamique avec 2 colonnes: Actual=20
et Budget et j'ai un champ qui calcul la difference. Sans=20
le champ calcul=E9, les lignes vides sont masqu=E9. Lorsque=20
j'ai le champ calcul=E9, je n'arrive pas =E0 masquer les=20
lignes, car le champ calcul=E9 retourne 0.
Quelqu'un connait-il un moyen de masquer automatiquement=20
les lignes, m=EAme lorsque j'ai le champ calcul=E9.

Merci d'avance pour votre aide.
Michael

2 réponses

Avatar
Laurent
Salut

j'utilise un bouton pour contracter/décontracter le tcd
ci joint le code que j'utilise:

Sub MasquerLesLignesVides()
On Error Resume Next
Application.ScreenUpdating = False
ActiveSheet.Shapes("Masquer les lignes vides").Delete
With ActiveSheet.Buttons.Add(440, 16, 120, 15)
.OnAction = "AfficherToutesLesLignes"
.Name = "Masquer les lignes vides"
.Characters.Text = "(Dé)Masquer les lignes vides"
.Placement = xlFreeFloating
.PrintObject = False
.Font.ColorIndex = 41
End With
Dim Ligne As Range, Cell As Range, i
Dim bMasqueLigne As Boolean
ActiveSheet.Rows.Hidden = False
For Each Ligne In ActiveSheet.PivotTables(1).DataBodyRange.Rows
bMasqueLigne = True
For i = 1 To Ligne.Cells.Count
If Ligne.Value(1, i) <> 0 Then bMasqueLigne = False: Exit For
Next i
If bMasqueLigne = True Then Ligne.Rows.Hidden = True
Next Ligne
End Sub
Sub AfficherToutesLesLignes()
On Error Resume Next
ActiveSheet.Shapes("Masquer les lignes vides").Delete
With ActiveSheet.Buttons.Add(440, 16, 120, 15)
.OnAction = "MasquerLesLignesVides"
.Name = "Masquer les lignes vides"
.Characters.Text = "Masquer les lignes vides"
.Placement = xlFreeFloating
.PrintObject = False
.Font.ColorIndex = 41
End With
ActiveSheet.Rows.Hidden = False
End Sub

"Michael" a écrit dans le message de
news: 1158201c3f49f$6bfa9eb0$
Bonjour,

voici mon problème:
J'ai un tableau croisé dynamique avec 2 colonnes: Actual
et Budget et j'ai un champ qui calcul la difference. Sans
le champ calculé, les lignes vides sont masqué. Lorsque
j'ai le champ calculé, je n'arrive pas à masquer les
lignes, car le champ calculé retourne 0.
Quelqu'un connait-il un moyen de masquer automatiquement
les lignes, même lorsque j'ai le champ calculé.

Merci d'avance pour votre aide.
Michael
Avatar
Merci pour la réponse.
Je vais essayer de suite.


-----Message d'origine-----
Salut

j'utilise un bouton pour contracter/décontracter le tcd
ci joint le code que j'utilise:

Sub MasquerLesLignesVides()
On Error Resume Next
Application.ScreenUpdating = False
ActiveSheet.Shapes("Masquer les lignes vides").Delete
With ActiveSheet.Buttons.Add(440, 16, 120, 15)
.OnAction = "AfficherToutesLesLignes"
.Name = "Masquer les lignes vides"
.Characters.Text = "(Dé)Masquer les lignes vides"
.Placement = xlFreeFloating
.PrintObject = False
.Font.ColorIndex = 41
End With
Dim Ligne As Range, Cell As Range, i
Dim bMasqueLigne As Boolean
ActiveSheet.Rows.Hidden = False
For Each Ligne In ActiveSheet.PivotTables
(1).DataBodyRange.Rows

bMasqueLigne = True
For i = 1 To Ligne.Cells.Count
If Ligne.Value(1, i) <> 0 Then bMasqueLigne =
False: Exit For

Next i
If bMasqueLigne = True Then Ligne.Rows.Hidden = True
Next Ligne
End Sub
Sub AfficherToutesLesLignes()
On Error Resume Next
ActiveSheet.Shapes("Masquer les lignes vides").Delete
With ActiveSheet.Buttons.Add(440, 16, 120, 15)
.OnAction = "MasquerLesLignesVides"
.Name = "Masquer les lignes vides"
.Characters.Text = "Masquer les lignes vides"
.Placement = xlFreeFloating
.PrintObject = False
.Font.ColorIndex = 41
End With
ActiveSheet.Rows.Hidden = False
End Sub

"Michael" a écrit
dans le message de

news: 1158201c3f49f$6bfa9eb0$
Bonjour,

voici mon problème:
J'ai un tableau croisé dynamique avec 2 colonnes: Actual
et Budget et j'ai un champ qui calcul la difference. Sans
le champ calculé, les lignes vides sont masqué. Lorsque
j'ai le champ calculé, je n'arrive pas à masquer les
lignes, car le champ calculé retourne 0.
Quelqu'un connait-il un moyen de masquer automatiquement
les lignes, même lorsque j'ai le champ calculé.

Merci d'avance pour votre aide.
Michael


.