[MACRO] Cacher des colonnes si la somme d'une plage est vide

  • Initiateur de la discussion Initiateur de la discussion GuizmoD
  • 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 !

GuizmoD

XLDnaute Nouveau
Bonjour à tous,

Voici mon premier poste mais surement pas le dernier.

J'espère que je saurai m'expliquer clairement pour ma première demande.

J'ai un fichier sur lequel je souhaite cacher les colonnes d'une plage si la somme de la colonne (dans la plage) est vide.

Voici ce que j'ai tenté de faire :

Code:
Sub masquercolonne()
Dim K As Long ' numéro de la colonne

For K = 4 To 33 Step -1 'Pour chaque colonne dans la plage "D10:AG1170" si la somme de la colonne = 0 alors on cache la colonne.
     If Evaluate("=SUBTOTAL(3," & Range(Cells(10, K), Cells(1170, K)).Address & ")") = 0 Then
        Columns(K).Hidden = True
     End If

Next K

End Sub

[CODE]

Je sais qu'il serait plus simple pour vous si je mets le fichier en question en ligne mais malheureusement je ne peux pas.

Merci d'avance pour votre aide.

GuizmoD
 
Re : [MACRO] Cacher des colonnes si la somme d'une plage est vide

Bonjour et bienvenue,


Je sais qu'il serait plus simple pour vous si je mets le fichier en question en ligne mais malheureusement je ne peux pas.

Ce n'est pas le fichier original qui est demandé, mais un fichier exemple expurgé des données sensibles et personnelle, qui reproduise le problème.

Mais comme tu es nouveau voici ta macro corrigée, à l'arrache.

Si tu veux aller de la colonne 33 à la 4 c'est : For K = 33 to 4 Step -1 et non pas K=4 to 33 Step -1.

De plus Sub.total(9,...) pour la somme

Code:
Sub masquercolonne()
Dim K As Long ' numéro de la colonne
For K = 33 To 4 Step -1 'Pour chaque colonne dans la plage "D10:AG1170" si la somme de la colonne = 0 alors on cache la colonne.
Columns(K).Hidden = Evaluate("=SUBTOTAL(9," & Range(Cells(10, K), Cells(1170, K)).Address & ")")=0

Next K
End Sub

A+
 
Re : [MACRO] Cacher des colonnes si la somme d'une plage est vide

Merci pour ta réponse Hasco ça fonctionne!

Ça fait plaisir de voir que je n’étais pas trop loin.

Du coup j'en profite pour continuer ma demande car ma mise en forme automatique n'est pas terminée.

Je voudrais maintenant effectuer la même opération mais pour les lignes. La plage est exactement la même mais il faut seulement rajouter un critère : la colonne doit être cacher si sa somme fait 0 mais également à condition que dans la colonne A il n'y ait rien d'affiché.

Dans le fichier exemple ci-joint il faudrait donc que les lignes en jaune soient caché mais pas les autres.
 

Pièces jointes

Re : [MACRO] Cacher des colonnes si la somme d'une plage est vide

Bonjour,

Tout d'abord ta macro 'masquercolonnes' peut s'écrire comme ceci:
Code:
Sub masquercolonne()
Dim K As Long ' numéro de la ligne
For K = 22 To 4 Step -1 'Pour chaque ligne dans la plage "D10:AG1170" si la somme de la colonne = 0 alors on cache la colonne.
    Rows(K).Hidden = Evaluate("=SUBTOTAL(9," & Range(Cells(K, 3), Cells(K, 22)).Address & ")") = 0 And Cells(K, 1) = ""
Next K
End Sub

Ensuite, peut-être n'as tu pas bien compris l'esprit du forum, qui est basé sur le partage et l'apprentissage par la pratique. Dans ton exemple, il n'y a pas un début de tentative pour répondre à ta deuxième interrogation qui concerne le masquage des Lignes. Il ne suffit pas ici, en tout cas pour moi, de demander pour que les choses arrivent toutes cuites.

A+
 
Re : [MACRO] Cacher des colonnes si la somme d'une plage est vide

Bonjour,

J'ai bien essayé quelque chose en effet mais je pensais être loin de la bonne réponse mais je ne l'étais pas finalement j'avais essayé avec la fonction if mais je n'arrivais pas à placer le "and" pour la deuxième condition mais je vois que je m'étais fait des nœuds au cerveau pour rien.

Mais en effet le but est d'apprendre je l'avais bien compris et c'est bien mon objectif.

Merci pour ton rappel et ta réponse.

GuizmoD
 
- 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

Réponses
2
Affichages
1 K
Retour