[Excel] Masquer cellules sous condition

Fermé
Sekmeth - 26 oct. 2010 à 20:01
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 26 oct. 2010 à 22:07
Bonjour,

J'ai un petit soucis avec un gros fichier Excel.

J'ai un tableau contenant tous les jours de l'année répartis par semaine (semaine 1 , 2 , 3...) Comme il y a énormément de données enregistrées pour chaque jour j'ai fais un tableau croisé dynamique.

De ce tableau dynamique j'extrais les informations qui m'intéressent dans un tableau par une formule simple de renvoi type A1 = B2 desquelles je tire des statistiques.

Le problème que je souhaite filtrer les informations dans le tableau croisé par exemple par jour: je veux que les informations pour tous les lundis de l'année.

Du coup mon tableau qui contient la formule de renvoi basique se remplit de #REF! pour toutes les cellules renvoyant un jour qui a disparu à cause du filtre.

Ma question est donc, y a-t-il un moyen de rendre dynamique mon tableau en faisant totalement disparaitre les cellules qui affichent #REF!. L'idée étant que si A1 contient une valeur normale, B1 contient #REF! et C1 un valeur normale, je veux voir que A1 et C1 côte a côte sans une cellule vide ou une erreur entre les 2.

Au cas où je me sois mal exprimé, en fait ce que qu'il me faudrait c'est une fonction "filtre" qui marche par ligne et non par colonne comme la fonction déjà installée sur Excel.

Je ne pousserai pas le vice de ma question en ne demandant de ne filtrer qu'une zone et non pas toute la colonne XD

Je me doute que ca doit pas être évident...


Merci d'avance déjà d'avoir lu ce post à rallonge et pour votre aide


1 réponse

eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
Modifié par eriiic le 26/10/2010 à 22:08
Bonsoir,

Sans un fichier exemple difficile de savoir ce qui s'adapetra le mieux à ton besoin...
Utiliser cijoint.fr et coller ici le lien fourni

2 petites macros :

Une qui masque la colonne si #REF! est rencontré sur une sélection :
Sub masqueREF() 
    Dim c As Range 
    For Each c In Selection 
        If CLng(CVErr(c.Value)) = xlErrRef Then 
            c.EntireColumn.Hidden = True 
        End If 
    Next c 
End Sub


Une qui supprime la cellule (avec décalage à gauche des suivantes) si #REF! est rencontré sur une sélection :
Sub suppREF() 
    Dim c As Range 
    For Each c In Selection 
        If CLng(CVErr(c.Value)) = xlErrRef Then 
            c.Delete Shift:=xlToLeft 
        End If 
    Next c 
End Sub

eric
0