masquer les colonnes dont la somme est nulle

al2008

XLDnaute Nouveau
Bonjour,

j'ai un tableau avec des cellules contenant des nombres avec un calcul des sommes. Lorsque la somme d'une colonne est nulle, je souhaite masquer cette colonne. Je joins un fichier d exemple. Je suis à votre dispostion pour toute question.
Merci d'avance pour votre aide.

j utilise excel 2003 mais je souhaite que la macro soit compatible avec excel 2007.
 

Pièces jointes

  • TEST.xls
    20 KB · Affichages: 130
  • TEST.xls
    20 KB · Affichages: 137
  • TEST.xls
    20 KB · Affichages: 141

pierrejean

XLDnaute Barbatruc
Re : masquer les colonnes dont la somme est nulle

bonjour al2008

voici 2 macros pour masquer et demasquer les colonnes
nb: elle sont basées sur le terme 'montant' en tete de colonne (donc a adapter si necessaire)
 

Pièces jointes

  • al2008_TEST.zip
    8.9 KB · Affichages: 211

al2008

XLDnaute Nouveau
Re : masquer les colonnes dont la somme est nulle

bonjour al2008

voici 2 macros pour masquer et demasquer les colonnes
nb: elle sont basées sur le terme 'montant' en tete de colonne (donc a adapter si necessaire)

Merci Beaucouyp PierrJean pour ce retour rapide et précis et qui fonctionne à merveille.
Petite question est-il possible de baser ces macros sur la
plage "M2:AL20" plutot que l'intitulé "montant" qui est fictif ?
encore merci pour ton aide précieuse qui me rend un grand service
et bonnes fêtes de fin d'année pierrejean !
 

gauchou

XLDnaute Nouveau
Re : masquer les colonnes dont la somme est nulle

Bonjour,

Une solution où il suffit de nommer la plage des données.

On n'utilise pas la ligne des totaux de colonne.

Cordialement

Salut mecano.
Je suis assez débutant.
cela marche très bien sur une feuille. mais pourquoi cela affiche une erreur 1004 lorsque que je essaie par exemple de créer une seconde feuille? avec la même formule, tout en supprimant celle de la première feuille.
Un problème de Range WORKSHEET..

Et si je veux que cela marche pour plusieurs plages de plusieurs feuilles d'un même classeur??

Cela fait beaucoup de question.. je conviens, mais je continu de chercher de mon coté.

Merci à vous tous.
 

gauchou

XLDnaute Nouveau
Re : masquer les colonnes dont la somme est nulle

Salut mecano.
Je suis assez débutant.
cela marche très bien sur une feuille. mais pourquoi cela affiche une erreur 1004 lorsque que je essaie par exemple de créer une seconde feuille? avec la même formule, tout en supprimant celle de la première feuille.
Un problème de Range WORKSHEET..

Et si je veux que cela marche pour plusieurs plages de plusieurs feuilles d'un même classeur??

Cela fait beaucoup de question.. je conviens, mais je continu de chercher de mon coté.

Merci à vous tous.

C'est bon j'ai trouver, j'apprends ...
 

gauchou

XLDnaute Nouveau
Re : masquer les colonnes dont la somme est nulle

Merci mécano41, magnifique ça fonctionne parfaitement !
bonnes fête !

Oui merci mecano, c'est nickel...

Mais j'ai un détails que je n'arrive pas solutionner, j'ai deux colonnes avec le même entête, donc il faut une condition pour masquer ler paires de colonnes vides et non les colonnes vides seulement...

Autre chose, comment transformer les deux boutons masquer et démasquer par une seule case à cocher???

J'apprends petit à petit mais là c'est un niveau un peu trop au-dessus...

Merci à vous tous.

Ci joint le fichier...
 

Pièces jointes

  • 3SDbrouillon19pour forum.xlsm
    47.9 KB · Affichages: 102

mécano41

XLDnaute Accro
Re : masquer les colonnes dont la somme est nulle

Bonjour,

Dans les colonnes doubles, est-ce que c'est toujours la première colonne ou toujours la seconde dont la somme peut être nulle ou bien n'importe laquelle?

Je ne sais pas ce que tu utilises comme boutons ... ; il ne fonctionnent pas comme les miens... J'utilise la barre d'outils : Boîte à outils contrôles ; en faisant un double clic sur le bouton avant de sortir du mode création (équerre bleue) on crée le Sub VBA correspondant. Pour les cases à cocher, même procédure.

Il faudrait joindre ton fichier enregistré en format .xls car je suis sous EXCEL 2002 et avec le convertisseur il peut y avoir des problèmes.

Cordialement
 

gauchou

XLDnaute Nouveau
Re : masquer les colonnes dont la somme est nulle

Bonjour,

Dans les colonnes doubles, est-ce que c'est toujours la première colonne ou toujours la seconde dont la somme peut être nulle ou bien n'importe laquelle?

Je ne sais pas ce que tu utilises comme boutons ... ; il ne fonctionnent pas comme les miens... J'utilise la barre d'outils : Boîte à outils contrôles ; en faisant un double clic sur le bouton avant de sortir du mode création (équerre bleue) on crée le Sub VBA correspondant. Pour les cases à cocher, même procédure.

Il faudrait joindre ton fichier enregistré en format .xls car je suis sous EXCEL 2002 et avec le convertisseur il peut y avoir des problèmes.

Cordialement

Merci pour ta réponse rapide,

En fait quelque soit la colonne de la paire qui contient des données, je veux que la paire soit gardée, si les deux sont remplies, conserver les deux et seulement si les deux sont vides, masquer la paire de colonnes. J'espère être clair. Dans mon exemple, si "archi" ou/et "nous" est remplie alors garder la paire, sinon, masquer.

Pour les boutons et cases à cocher, c'est un détail, du pofinnage, qui permet de regrouper deux action sur un même bouton.

Je joint le fichier au bon format.

Merci à vous tous.
 

Pièces jointes

  • 3SDbrouillon19pour forum.zip
    35.9 KB · Affichages: 70

gauchou

XLDnaute Nouveau
Re : masquer les colonnes dont la somme est nulle

Bonjour,

Voici la version modifiée avec masquage par case à cocher, si double colonne nulle .

Cordialement

Salut le forum,

Que puis je ajouter dans la macro pour masquer aussi les lignes vides dans cette même plage de donnée? je remets la macro pour info:


Private Sub MDCShob_Click()
Application.ScreenUpdating = False
If MDCShob.Value = True Then
' ----- Masquage/démasquage des colonnes si somme nulle
Dim PlageTest As Range
Dim Colonne As Range
Dim PosCol As Long

Set PlageTest = Range("PlageDonneesShob")
For PosCol = 1 To PlageTest.Columns.Count Step 2
Set Colonne = PlageTest.Columns(PosCol)
If Application.WorksheetFunction.Sum(Colonne) = 0 And Application.WorksheetFunction.Sum(Colonne.Offset(0, 1)) = 0 Then
Range("PlageDonneesShob").Columns(PosCol).EntireColumn.Hidden = True
Range("PlageDonneesShob").Columns(PosCol + 1).EntireColumn.Hidden = True
Else
Range("PlageDonneesShob").Columns(PosCol).EntireColumn.Hidden = False
Range("PlageDonneesShob").Columns(PosCol + 1).EntireColumn.Hidden = False
End If
Next PosCol
ElseIf MDCShob = False Then
' ----- Démasquage de toutes les colonnes de la zone
Range("PlageDonneesShob").EntireColumn.Hidden = False
End If
Range("A1").Select
Application.ScreenUpdating = True
End Sub

Merci le forum,
 

Staple1600

XLDnaute Barbatruc
Re : masquer les colonnes dont la somme est nulle

Bonsoir à tous

Une possibilité autre

Code:
Sub masque()
Dim r As Range, c As Range
Set r = [M21].Resize(, 26)
For Each c In r
c.Columns.Hidden = -1 * (c.Value = 0)
Next
End Sub
Code:
Sub demasque()
[M21].Resize(, 26).Columns.Hidden = False
End Sub
 

gauchou

XLDnaute Nouveau
Re : masquer les colonnes dont la somme est nulle

Bonsoir à tous

Une possibilité autre

Code:
Sub masque()
Dim r As Range, c As Range
Set r = [M21].Resize(, 26)
For Each c In r
c.Columns.Hidden = -1 * (c.Value = 0)
Next
End Sub
Code:
Sub demasque()
[M21].Resize(, 26).Columns.Hidden = False
End Sub


Salut à tous,

cette solution ne fonctionne pas correctement sur mon fichier, j'entends: la dernière paire de collonne remplie se sépare en deux..

par contre quelqu'un à t il une suggestion pour masquer les ligne dont la plage de donnée est vide??, à ajouter dans la macro??

Merci à tous et à bientôt,
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 196
Messages
2 086 101
Membres
103 116
dernier inscrit
kutobi87