Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Masquer des colonnes selon leur remplissage une fois trie

  • Initiateur de la discussion Initiateur de la discussion drouch
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

drouch

XLDnaute Nouveau
Bonjour,
Je vais tenter de m expliquer, mais ca va peut etre pas etre tres clair;
Je souhaiterai faire une macro qui va me masquer les colonnes qui n ont que des 0, mais cela doit etre valable une fois trié, c est a dire que si je tri avec "b" et qu il n ya que des 0, et meme si la colonne comprend des 1 en a, elle est masquée. Je pensai rajouté une case "=somme()" sous chaque colonne afin ensuite de balayer ces cases est de masquer lorsque c est egale a 0 mais ca ne prend pas en compte le tri du coup.
Sinon je pensais a deux macro, une pour a et une pour b, qui pour chaque colonne irai regarder la colonne "reference" et si c est a, par exemple, elle additionne la case de la colonne dans une variable style c=c+(case) est a la fin si on a 0 elle masque et passe a la colonne d apres. Mais ca je ne sais pas le faire en VBA.
J espere avoir etait clair.
Je vous remercie d avance de l attention que vous y porterez et je suis bien sure ouvert a toute proposition auquel je n aurai pas pensé.
Un fichier d exemple est joint
 

Pièces jointes

Re : Masquer des colonnes selon leur remplissage une fois trie

Salut drouch et le forum
Effectivement, ce n'est pas très clair
Je souhaiterai faire une macro qui va me masquer les colonnes qui n ont que des 0, mais cela doit etre valable une fois trié
Je suppose que par "trié", tu entends "filtré" ?
Si c'est bien ça, au lieu de faire une somme(), regarde plutôt dans Sous.total(109; plage)
A+
 
Re : Masquer des colonnes selon leur remplissage une fois trie

c etait sure que j allais pas etre tres clair, desole. Mais je crois que j ai reussi ,je suis assez fier d'ailleurs ^^ voila ma solution si ca peut arranger quelqun qui un jour se posera la meme question a condition de l avoir compris 😉
"Sub essai()
c = 3
b = 2
Sheets("Feuil2").Cells.Item([2], c).Select
Do Until ActiveCell.Value = ""

a = 0

Do Until ActiveCell.Value = ""
d = ActiveCell.Value

If Cells.Item(b, [2]) = "b" Then
a = a + d
End If
b = b + 1
Sheets("Feuil2").Cells.Item(b, c).Select
Loop
If a = 0 Then
Columns(c).Select
Selection.EntireColumn.Hidden = True
End If
b = 2
c = c + 1
Sheets("Feuil2").Cells.Item(b, c).Select
Loop


End Sub"
je fais ca pour les deux cas
en tout cas merci a ceux qui s y sont penché ou qui s y penchent
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…