masquer des lignes selon la valeur d'une cellule

stelledg

XLDnaute Nouveau
Bonjour,

J'ai un tableau excelle d'inscrits triés par nationalités.
Beaucoup de nationalités ont 0 inscrits. Je voudrais masqué avec une formule MFC les nationalités ayant 0 inscrits. Je ne veux pas utiliser la fonction masquer de la barre de tache car le tableau est regulierement mis a jour

colonne A = nationalité
colonne B = nombres d'inscrits

Si B1 = 0, alors ligne 1 masquée

Merci d'avance pour votre aide

Christelle
 

Kobaya

XLDnaute Occasionnel
Re : masquer des lignes selon la valeur d'une cellule

bonjour Christelle,

une MFC ne permet pas d'escamoter une ligne.
je te propose les filtres :
  1. mets le curseur sur une des données
  2. dans le menu Données, clique sur Filtres\Filtres automatique
  3. ensuite, tu cliques sur la petite flèche qui apparait en cellule B1
  4. clique sur Personnalisé
  5. dans la liste déroulante de gauche, clique sur Différent de
  6. dans la liste déroulante de droite, saisie 0
Une autre possibilité, via une macro, est effectivement de masquer les lignes à 0. dis-moi si ça t'intéresse !
 

stelledg

XLDnaute Nouveau
Re : masquer des lignes selon la valeur d'une cellule

Bonjour Kobaya

Merci pour ta réponse rapide.

En fait, ca ne convient pas vraiment.

Mon tableau de nationalité est en feuille 2, En feuille 1 j'ai la liste des inscrits que le modifie régulierement.
Avec le filtre automatique, mes modifications sont bien prises en compte mais les lignes masquées restent masquées meme si un inscrit s'est ajouté à une nationalité qui etait à 0, ca ne fait pas d'update en fait.

je joins un résume de mon fichier

Merci encore

Christelle
 

Pièces jointes

  • competitors_list_test-miseenforme.xls
    46 KB · Affichages: 154

Papaye

XLDnaute Occasionnel
Re : masquer des lignes selon la valeur d'une cellule

Coucou à tous et à toutes,

Christelle, je te propose cette solution.
La mise à jour se fait par macro évenementielle ... càd que dès que tu cliques sur le 2ème onglet, ta liste se met à jour.
 

Pièces jointes

  • competitors_list_test-miseenforme_V2.zip
    16.3 KB · Affichages: 171

stelledg

XLDnaute Nouveau
Re : masquer des lignes selon la valeur d'une cellule

Bonjour Papaye !

MERCI pour la macro, ça fonctionne tres bien :)

Seul petit probleme, le document surlequel tu as travaillé est une version light de mon document. Donc je dois reproduire ta macro.

Si je fais
outils
macro
macro
macro 1 modifer
je copie le texte vba :

Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 23/07/2006 par Famille
'

'
Range("A1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=4, Criteria1:="<>"
End Sub

et je crée une macro sur mon doc et je copie le texte VBA

Est-ce que ca devrait fonctionner ? Parce que j'ai essaye et ca ne fonctionne pas. Je sais créer une macro avec le systeme d'neregistrement mais pas avec le langage VBA.

Tu peux m'aider ?

Merci d'avance

Christelle
 

jeanpierre

Nous a quitté
Repose en paix
Re : masquer des lignes selon la valeur d'une cellule

Bonsoir stelledg, Papaye

J'avais fait la même chose ou presque, puisque ma procédure événementielle dans la feuille appelait le code dans un module. Papaye a été plus rapide.

Mais Papaye a fait plus simple, ne te préoccupes pas du module.
Clic droit sur l'onglet de ta feuille "nationalité" et visionner le code, tu le copies et le colles dans ton classeur de la même manière.

Bonne soirée.

Jean-Pierre

Par contre, s'il y a des images (drapeaux) et qu'il n'y a pas de participant en face, l'image va se promener...
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Re : masquer des lignes selon la valeur d'une cellule

Salut Christelle
Bonsoir Papaye
comme te l'a dit Papaye c'est une procèdure événementieel qui gère cette procèdure donc il faut que tu mettes cette procèdure dans l'événement Worksheet_Activate de ta feuille équivalent de nationnalité
tu cliques sur Visual Basic Editor dans la barre d'outil Visual Basic puis sur
explorateur de projets dans la barre Standard de VBE
tu cliques sur le nom de la feuille dans l'exemple nationnalité
ensuite tu vas dans le menu déroulant Objet en haut à Gauche avec marqué (Général) sélectionner WorkSheet puis tu colles la procèdure ci dessous
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
Selection.AutoFilter Field:=4, Criteria1:="<>"
Application.ScreenUpdating = True
End Sub
tu pourras la retrouver en sélectionnant dans le menu déroulant Procèdure de Droite la procèdure Activate
en espèrant avoir pu t'aider
Arfff pas évident d'expliquer Lol
Arfff Salut jeanpierre !!!!!!!!
bonne nuit
 
Dernière édition:

Papaye

XLDnaute Occasionnel
Re : masquer des lignes selon la valeur d'une cellule

Bonjour à tous,

Désolé de n'avoir pas répondu hier soir (décalage horaire oblige), j'étais déjà couchée. Les garçons ont donc pris (brillament) le relais et toiletter mon code.

Merci à Chti et JP donc !

A bientôt
 

stelledg

XLDnaute Nouveau
Re : masquer des lignes selon la valeur d'une cellule

Bonjour,

J'ai parlé trop vite !

En fait la solution me convient tout a fait et fonctionne parfaitement sur le document "allégé".

Par contre je n'arrive pas à faire fonctionner la procédure evenementiel, j'aipourtant suivi à la lettre les insctrutions claires de ChTi160 Jean-Pierre.

Quand je passe de la feuille 1 à 2, j'ai une fenetre Virtul basic qui 'souvre avec le message suivant "erreur d'execution 1004" et "La méthode autofilter de la classe Range a échoué"

Puis si je click sur débogage, un fenetre MVB s'ouvre et cette ligne est surlignée en jaune :
Selection.AutoFilter Field:=4, Criteria1:="<>"

Est ce que j'ai fait une erreur quelque part ?

Merci d'avance

Christelle
 

jeanpierre

Nous a quitté
Repose en paix
Re : masquer des lignes selon la valeur d'une cellule

Bonsoir Stelledg, le fil, le Forum,

Pas trop d'idée, je viens d'arriver.

Peux-tu préciser ta version d'excel, encore que, je ne pense pas présentement, que cela vienne de cela dans la mesure où, comme tu le précises, cela fonctionne sur le fichier "allégé".

Excel97, jamais utilisé. Si c'est ton cas, tu fais Outils, Macro, Nouvelle macro, tu valides le message qui s'ouvre, tu actionnes ton filtre et tu arrête la macro. Ensuite tu vas voir ce que VBA a écrit et tu remplaces, dans ton programme, si c'est différent. Sinon pour le moment je ne vois pas.

Autre possibilité, tu mets ton fichier en pièce jointe, zippé si possible.

On attend de tes nouvelles.

Bonne soirée et bon courgae.

Jean-Pierre
 

Discussions similaires

Statistiques des forums

Discussions
312 502
Messages
2 089 034
Membres
104 010
dernier inscrit
Freba