Ne pas faire apparaitre les lignes avec totale=0

Bonjour,

J'ai un fichier avec plusieurs onglets. Le tableau de chacun des onglets est identiques, il n'y a que les montants qui changent. En fait c'est une maquette. Le souci c'est qu'il apparait pas mal de total ligne à zéros. Comment pourrais je ne pas faire apparaitre les lignes qui ont un totale à zéro. S'il vous faut un fichier exemple, n'hésitez pas.

Merci d'avance

Bonjour

Une solution basique

Menu "Outils" "Options" onglet "Affichage" et décocher "Valeur zéro"

Cordialement

Merci Amadeus. Avec cette manip, seul les 0 disparaissent mais pas les lignes correspondantes;

D'autres solutions SVP ?

Merci d'avance

Bonjour,

S'il vous faut un fichier exemple, n'hésitez pas.

oui, le modèle + 1 exemple

il faudra sans doute passer par un filtre élaboré

Claude

Rebonjour à tous,

Je joins le fichier, que j'ai diminué au possible. En fait il faudrait que les lignes dont le total est à 0 n'apparaissent pas, tans que celles ci ne diffère pas de 0. Il est evident, que certaines d'entre elles évolueront d'ici la fin de l'année.

Merci d'avance

34suiviace2010siege.zip (109.23 Ko)

Bonjour

Tu te bases sur une colonne en particulier pour les 0 ? Car dans ton fichier, tu n'as aucune ligne à zéro ; tu as au moins un nombre dans une des colonnes D E F.

A te relire

Amicalement

Nad

Edit : Petit coup de gueule : raz les couettes des déconnexions à peine la question posée !

sans titre 2

re,

Les feuilles ne comportant que des formules, donc sans saisies apparentes,

les filtres ne pourraient se lancer que sur ordre (boutons: filtrer/afficher) sur chaque feuille,

ou alors direct en modifiant les valeurs dans la feuille "Base" colonnes D à F ou +

et en bouclant les filtres sur toutes les feuilles

Combien y-a-t-il de feuilles à traiter sur le fichier réel ?

à te relire

Claude

Bonjour,

Désolé Nad pour la déconnexion, mais j'utilise la connexion internet d'un collègue. Je ne peux rester connecté en permanence. Je me reconnecte, plusieurs fois dans la journée, pour vérifier les réponses, et échanger. Le problème se trouve dans les onglet en vert. Le 1er onglet, sert a alimenter les onglets verts.

Claude, les onglets peuvent varier dans le temps (création, suppression). Actuellement, il y a une quinzaine d'onglets. Dans certains onglets, il y a si peu de valeur autre que 0, qu'on a du mal à les repérer.

Merci encore pour votre aide

A+

Bonjour à tous,

à tester,

en modifiant une valeur dans la feuille "Base", les onglets suivants sont filtrés,

total <> de zéro

la feuille "Base" doit être placée en 1er, les autres feuilles sont traitées

Amicalement

Claude

Désolé pour le retour tardif, mais j'ai eu une dure journée. Claude encore merci pour ton aide, je teste demain et vous tiens au courant

A+

-- Sam Mar 20, 2010 12:03 pm --

Bonjour

Claude, cela m'as l'air pas mal du tout. Es que lorsque je vais rajouter les données des mois suivants, cela fonctionnera ? Données intégrées par copier/coller d'une extraction. Ensuite, sauf si j'ai pas compris, il faut sortir du fichier et le réouvrir pour que la suppression des lignes se fasses ?

Merci de ton aide

Bonjour,

si tu rajoute des colonnes, il te faudra modifier ce code

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("d2:f" & _
        [c65000].End(xlUp).Row)) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        Call MasqueTotZéro
    End If
End Sub

cette partie: Range("d2:f"

Claude

Bonjour Claude

Je suis vraiment désolé de te solliciter de nouveau. Ta soluce fonctionne super bien, mais le souci c'est que le fichier que je t'ai envoyé, par souci d'allègement à été tronqué. Tout d'abord, après l'onglet base, j'ai 2 onglets (mode opératoire et acceuil) qu'il ne faut pas traiter, et en plus dans les autres onglets il y a une autre colonne avant la colonne A c'est à dire que dans le vrai fichier la colonne A devient B. J'ai essayé de faire des modifs, mais rien ni fait. Es qu'il y a une solution, ou est infaisable.

Merci d'avance pour ton aide

Bonjour à tous,

Pas de problème, remèdes:

1) pour les feuilles à ne pas traiter, tu les places en tête,

si 2 feuilles => 2+ Base = 3

la boucle macro commencera à traiter à partir de la feuille 4

remplacer:

For i = 2 To Worksheets.Count

par:

For i = 4 To Worksheets.Count

2) toutes les feuilles doivent avoir le total dans la même colonne

sur mon fichier c'est "N"

arrange-toi pour cela et si tu as le total en colonne "O", remplace la macro par celle-ci:

Sub MasqueTotZéro() 'en partant de la feuille base
Dim i As Byte
Application.ScreenUpdating = False
    For i = 4 To Worksheets.Count
        With Worksheets(i)
            .Activate
            On Error Resume Next
                .ShowAllData
            On Error GoTo 0
            Cells(2, 15) = "=$o4<>0"
            Range("a3:o" & [a65000].End(xlUp).Row) _
            .AdvancedFilter Action:=xlFilterInPlace, _
            CriteriaRange:=Range("o1:o2"), Unique:=False
            Cells(2, 15).ClearContents
        End With
    Next
End Sub

Claude

Encore merci Claude. Je teste et te tiens au courant

Bonne fin de journée

re,

en relisant, je m'aperçois qu'une erreur s'est glissée dans la macro, je la remet corrigée

Sub MasqueTotZéro() 'en partant de la feuille base
Dim i As Byte
Application.ScreenUpdating = False
    For i = 4 To Worksheets.Count
        With Worksheets(i)
            .Activate
            On Error Resume Next
                .ShowAllData
            On Error GoTo 0
            Cells(2, 15) = "=$o4<>0"
            Range("a3:o" & [b65000].End(xlUp).Row) _
            .AdvancedFilter Action:=xlFilterInPlace, _
            CriteriaRange:=Range("o1:o2"), Unique:=False
            Cells(2, 15).ClearContents
        End With
    Next
End Sub

Bizarre ! l'aperçu ne reflète pas le code original, sur cette ligne: çà rajoute amp; devant [b65000]

Range("a3:o" & [b65000].End(xlUp).Row) _
.AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=Range("o1:o2"), Unique:=False

il faut donc effacer ce amp;

tu en profiteras pour remplacer aussi :

Sub AfficherTout()
Dim i As Byte
    For i = 4 To Worksheets.Count
        With Worksheets(i)
            On Error Resume Next
            .ShowAllData
            On Error GoTo 0
        End With
    Next
End Sub

Je préviens Sébastien

Claude

Bonsoir,

Le problème est réglé.

Merci Claude

Cordialement,

Encore merci Claude

Le résultat obtenu est exactement celui souhaité. Bravo

Cordialement

Rechercher des sujets similaires à "pas apparaitre lignes totale"