Masquer une ligne si la 1ère cellule est coloriée

Résolu/Fermé
mistouv Messages postés 36 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 27 avril 2024 - 26 janv. 2013 à 21:08
mistouv Messages postés 36 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 27 avril 2024 - 27 janv. 2013 à 22:25
Bonjour,

Bonjour à tous,

Je colorie la 1ère cellule d'une ligne en fonction de diverses conditions contenues dans cette ligne, voire dans d'autres lignes (par "Mise en Forme Conditionnelle" avec "Remplissage" rouge ou autre).
De cette manière, je peux masquer manuellement (Bouton droit / Masquer) les lignes que je ne veux pas voir apparaître dans mon impression.
La liste est longue, et ce travail est fastidieux. Par une macro, je voudrais donc masquer automatiquement toutes les lignes dont la 1ère cellule est coloriée (en rouge, mais pas seulement rouge).
Je vous remercie d'avance de votre aide, car je ne suis pas au top en VB...
À bientôt de vous lire, et bonne fin de week-end.

M



A voir également:

10 réponses

via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 735
26 janv. 2013 à 23:27
Bonsoir

Tester avec les couleurs n'est pas évident surtout si elles ont issues d'une MFC
Par contre si tu colorie la 1ere cellule c'est qu'elle contient une valeur obtenue par les différentes conditions sinon elle est doit être vide

Tu peux avec une macro faire masquer toutes les lignes dont la 1ere cellule contient une valeur

Sub effaceligneavecvaleurs()
For n = 1 To 20
If Cells(n, 1).Value <> "" Then Rows(n).Select: Selection.EntireRow.Hidden = True
Next
End Sub

La macro vérifie les 20 premières lignes (la boucle FOR) et supprime celles dont la cellule en colonne 1 (Cells (n,1) )contient une valeur

A adapter à tes besoins
0
mistouv Messages postés 36 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 27 avril 2024
27 janv. 2013 à 01:20
Bonsoir, et merci pour cette réponse rapide.
En fait, cette cellule en tête de ligne contient effectivement une valeur, mais c'est un n° de ligne fixe qui n'a rien à voir avec le fait qu'elle soit coloriée. Donc, je ne peux pas tester une valeur particulière.
Par conre, je dois avoir quelque part le moyen de connaître la valeur de la couleur d'une cellule, je cherche et je reviens vers toi, car il suffirait de remplacer ton test "...value <>..." par "...value valeur_couleur_cellule..."
Merci encore, et à très bientôt.
M.
0
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 735
27 janv. 2013 à 01:33
Je ne suis pas sur que le VBA puisse tester une couleur qui est issue d'une MFC et s'il y a plusieurs couleurs ça complique encore
Le plus simple serait de rajouter une colonne en tête de ligne, d'y faire inscrire une valeur selon tes formules de conditions lorsque la ligne est à masquer (avec des SI etc) et donc rien d'inscrit sinon
Ensuite faire appliquer la macro
puis masquer la 1ere colonne avant impression

A tester
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
27 janv. 2013 à 08:31
Salut le fil,

Pour ma part je pense que de mettre le fichier à notre disposition est un nécessité si nous ne voulons pas travailler dans le vide.
Supprimer ou masquer les données confidentielles avec des toto, titi et joindre le fichier avec ce lien

https://www.cjoint.com/
0
mistouv Messages postés 36 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 27 avril 2024
27 janv. 2013 à 12:54
Bonjour,

J'ai fait un petit exemple, avec un fichier "avant" et un fichier "après".

https://www.cjoint.com/?3ABmWU4U4fn
https://www.cjoint.com/?3ABmYgnL0pM

Bien sûr, mon fichier réel est une feuille de calcul de devis assez volumineuse, mais l'idée est là.

A très bientôt, et bon dimanche.

M
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mistouv Messages postés 36 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 27 avril 2024
27 janv. 2013 à 13:00
Re-bonjour,

Pour répondre à une des remarques de Via55, je peux faire en sorte de n'avoir que du rouge, ce n'est pas un pb.
Par contre, ajouter une colonne à ces feuilles de calcul me semble moins évident.
Toutefois, je vais essayer de le faire sans déstabiliser les fonctions de mon classeur.
Je reviens vers vous si j'y suis arrivé sans provoquer de dégâts.
(mais la bonne solution serait de tester cette couleur rouge...)

Bonne fin de week-end

M
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
27 janv. 2013 à 14:00
Re,

Voila avec ton fichier c'est déjà plus facile, ta mise en forme conditionnelle teste la colonne E, il suffit de reprendre dans le code cette condition.
Place sur ta feuille 1 bouton activeX et dans les propriétés de ce bouton place ce code

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
For i = 3 To Range("E65536").End(xlUp).Row
If Cells(i, 5) <> "" And Cells(i, 5) = 0 Then Rows(i).EntireRow.Hidden = True
Next i
Application.ScreenUpdating = True
End Sub

Ne pas oublier de créer un autre bouton avec ce code pour pouvoir afficher les lignes masquées

Private Sub CommandButton2_Click()
Application.ScreenUpdating = False
Range([E1], Range("E65536").End(xlUp)).EntireRow.Hidden = False
Application.ScreenUpdating = True
End Sub

0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
27 janv. 2013 à 20:28
Re,

Serait il possible d'avoir des nouvelles, ou doit on abandonner la discussion ?
0
mistouv Messages postés 36 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 27 avril 2024
27 janv. 2013 à 20:53
Re-bonjour à tous,

Compte tenu du fait que la couleur rouge dépend de plusieurs conditions, et que ce ne sont pratiquement jamais les mêmes, j'ai bien compris avec votre aide à tous qu'on ne pouvait pas utiliser cette couleur, vu qu'elle est générée par une MFC, et qu'on n'a donc pas la valeur 3 pour le remplissage rouge.
L'idée d'insérer une colonne spécifique est bonne, mais pour ne rien casser, j'ai mis cette colonne à droite toute de ma feuille (BB), et je suis en train d'y copier les conditions une par une (c'est long, mais c'est à faire une fois pour toutes).
Ensuite, grâce à ta macro, Mike-31, je teste une cellule "vrai" ou "faux" générée par ces conditions ligne par ligne et le tour est joué.
Merci de votre aide, et à bientôt peut-être.

M.
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
27 janv. 2013 à 21:06
Re,

Le code que je t'ai écrit l'a été en fonction de ton fichier exemple et en un seul clic toutes les lignes sont traitées voir le fichier exemple

https://www.cjoint.com/c/CABvepOcpeP

S'il y a d'autres paramètres à prendre en compte il suffit de le dire, je ne suis pas devin

Par contre si tes attentes sont satisfaites, passe le statut de la discussion en résolu ou demande nous de le faire pour toi.
0
mistouv Messages postés 36 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 27 avril 2024
27 janv. 2013 à 22:25
Merci encore Mike-31, j'ai utilisé ta macro en adaptant la condition pour qu'elle fonctionne avec mon fichier réel en adaptant ce dernier comme expliqué dans mon message de 21h.

Je clôture donc ce sujet, et à bientôt j'espère.

Michel
0