Cacher des colonnes automatiquement quand le sous total est de Zero

Nxmagny

XLDnaute Nouveau
Bonjour,

J'ai besoin d'aide!

Je suis a travailler sur un fichier excel 2010 contenant beaucoup de données. J,ai resolu une foule de probleme mais j'ai beau chercher je ne trouve pas comment faire pour soit inserer une macro ou une formule qui va cacher mes colonnes dont le soustotal est de zero.

J'arrive a cacher les lignes a zero, mais pas les colonnes.

Malheureusement, je nepeux pas mettre mon fichier ici, car il est trop lourd et contient des données confidentiels.

Est ce que quelqu'un peut m'aide?

Je suis tres debutante dans les macro.

Merci a l'avance!

Nancy
 

Staple1600

XLDnaute Barbatruc
Re : Cacher des colonnes automatiquement quand le sous total est de Zero

Bonjour à tous

Nxamagny
Je voulais dire qu'affiche le MsgBox d'autre que Erreur 400?
Tu as juste ce message ?
262979d1362517556t-syntaxe-de-commande-shell-400.png

Sinon as-tu essayé la proposition de david84, à savoir mettre le code "amendé" de 00 dans une procédure Worksheet_Calculate
(à mettre dans le code de la feuille concernée en faisant un clic-droit sur l'onglet -> Visualiser le code)
(clique sur l'image ci-dessous pour l'afficher en taille réelle)
01Nxmagny.jpg

PS: Tu as essayé la proposition de Si...? (voir le message #25)
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Cacher des colonnes automatiquement quand le sous total est de Zero

Re

Nxmagny
Relis mon précédent message (le message #31)
J'explique comment faire
(Lis les explications et clique sur l'image pour voir si tu as mis le code VBA au bon endroit)

PS: Tu n'as pas répondu aux deux questions que je te posais dans ce message #31.
 
Dernière édition:

Nxmagny

XLDnaute Nouveau
Re : Cacher des colonnes automatiquement quand le sous total est de Zero

Oui Staple, je n'ai que ce message 400

J'ai essayer la prposition de David84, mon fichier ne repond plus, il cherche sans cesse.

Je crois que je vais abandonner, et me contenter de masquer moi meme les colonnes pour simplifier la vie de mes representants :(

J'esperais vraiment arriver a terminer le fichier pour qu'il soit friendly pour eux! sniff snifff



Bonjour à tous
Nxamagny
Je voulais dire qu'affiche le MsgBox d'autre que Erreur 400?
Tu as juste ce message ?
Regarde la pièce jointe 335319

Sinon as-tu essayé la proposition de david84, à savoir mettre le code "amendé" de 00 dans une procédure Worksheet_Calculate
(à mettre dans le code de la feuille concernée en faisant un clic-droit sur l'onglet -> Visualiser le code)
(clique sur l'image ci-dessous pour l'afficher en taille réelle)
Regarde la pièce jointe 335320

PS: Tu as essayé la proposition de Si...? (voir le message #25)
 

Staple1600

XLDnaute Barbatruc
Re : Cacher des colonnes automatiquement quand le sous total est de Zero

Re


Essaies sur le fichier exemple que tu as joint, tu verras que cela fonctionne.
mais comme tu le disais plus bas
contenant plus de 10 000 clients et une cinquantaine de promo differente.
Sur un classeur contenant beaucoup de données, la macro en l'état rame, il faudrait donc la modifier.
Mais il semble en effet plus simple de masquer les colonnes manuellement
ou peut-être envisager d'utiliser un TCD.
 

david84

XLDnaute Barbatruc
Re : Cacher des colonnes automatiquement quand le sous total est de Zero

Le plus simple est d'effectuer la recherche non pas sur toutes les cellules comportant une formule comme c'est actuellement le cas mais uniquement sur la ligne comportant les sous-totaux. Personnellement je me serais simplifié la vie en déclarant la plage en tant que tableau et en y insérant une ligne des totaux afin de ne me baser que sur celle-ci mais on peut également aller rechercher la dernière ligne non vide en partant du principe que c'est la ligne des totaux. C'est beaucoup moins intuitif mais bon...
A+
 

Nxmagny

XLDnaute Nouveau
Re : Cacher des colonnes automatiquement quand le sous total est de Zero

Bonjour David84,

J'ai au bas de mes colonnes des sous totaux. Ce que je demandais c’était cela que lorsque mon sous total est a Zéro que les colonnes se cachent.

Mes sous-totaux se retrouvent de AQ 8110 a bg 8110
 

david84

XLDnaute Barbatruc
Re : Cacher des colonnes automatiquement quand le sous total est de Zero

Bonjour David84,

J'ai au bas de mes colonnes des sous totaux. Ce que je demandais c’était cela que lorsque mon sous total est a Zéro que les colonnes se cachent.

Mes sous-totaux se retrouvent de AQ 8110 a bg 8110

Et bien il ne te reste plus qu'à adapter le code en remplaçant
Code:
For Each c In Cells.SpecialCells(xlCellTypeFormulas, 23)
par
Code:
For Each c In Range("AQ8110:BG8110")
Attention, si tu dois rajouter ou supprimer des lignes cette plage ne sera plus correcte. Tu devras donc au préalable rechercher cette dernière ligne afin définir ta ligne des sous-totaux :
Code:
Dim DerLig As Long, PlTot As Range
DerLig = Range("AQ" & Rows.Count).End(xlUp).Row
Set PlTot = Range("AQ" & DerLig & ":BG" & DerLig)
For Each c In PlTot
  If c.FormulaR1C1 Like "=SUBTOTAL*" And c.Value = 0 Then c.Columns.Hidden = True Else c.Columns.Hidden = False
Next

Si des colonnes doivent être ajoutées il faudra également prévoir le cas de figure.

Si ce sont par définition des sous-totaux je pense que la condition
Code:
If c.Value = 0 Then c.Columns.Hidden = True Else c.Columns.Hidden = False
devrait suffire.
A+
 

Nxmagny

XLDnaute Nouveau
Re : Cacher des colonnes automatiquement quand le sous total est de Zero

Staple : Je sais que ca fonctionne sur mon fichier exemple. Quand j'ai reecrit message #13 je crois. j'ai bel et bien mentionner que rendu dans mon fichier pour le quel je cherche la solution ca ne fonctionne plus! Il m'inscrit un erreur 400 . En bout de ligne il a beau marche sur mon fichier exemple.... c'est dans mon fichier client que j'ai besoin. Je ressolicitais l'aide pour trouver l'erreur sur mon fichier de travail.

Re


Essaies sur le fichier exemple que tu as joint, tu verras que cela fonctionne.
mais comme tu le disais plus bas

Sur un classeur contenant beaucoup de données, la macro en l'état rame, il faudrait donc la modifier.
Mais il semble en effet plus simple de masquer les colonnes manuellement
ou peut-être envisager d'utiliser un TCD.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Cacher des colonnes automatiquement quand le sous total est de Zero

Bonsoir à tous


Nxmagny
Petites précisions
Staple : Je sais que ca fonctionne sur mon fichier exemple. Quand j'ai reecrit message #13 je crois. j'ai bel et bien mentionner que rendu dans mon fichier pour le quel je cherche la solution ca ne fonctionne plus!
Tu ne pouvais pas tester dans le message #13, ce quenous avons commencé à évoquer seulement à partir du message #17
à savoir mettre le code VBA non plus dans un module standard mais dans le code de la feuille dans la procédure Worksheet_Calculate ;)

Mon message #31 et les suivants étaient donc juste là pour t'expliquer comment mettre le code au bon endroit. ;)

Question:
Est-ce que le code de david84 proposé dans le message #38 fonctionne sur ton fichier de travail ?
(code à mettre toujours dans le code de la feuille et non pas dans un module standard)
Le code devra être ainsi rédigé:
VB:
Private Sub Worksheet_Calculate()
'Faire clic-droit sur l'onglet de la feuille concernée :-> Visualiser le code
'c'est là qu'il faudra copier/coller cette macro
Dim DerLig As Long, PlTot As Range
DerLig = Range("AQ" & Rows.Count).End(xlUp).Row
Set PlTot = Range("AQ" & DerLig & ":BG" & DerLig)
For Each c In PlTot
If c.Value = 0 Then c.Columns.Hidden = True Else c.Columns.Hidden = False
Next
End Sub
 
Dernière édition:

Si...

XLDnaute Barbatruc
Re : Cacher des colonnes automatiquement quand le sous total est de Zero

Re

En remplacemement du fichier supprimé dans le message #25.

Utilisation de la fonction "InputBox" pour écrire les formules de sous-totaux après avoir initialisé la plage des données sous la ligne des titres (fixée ici).

Remarque : ce n'est pas le nombre de lignes qui agit sur la durée mais plutôt le nombre de colonnes.
 

Pièces jointes

  • Evènement Filtre.xlsm
    118.6 KB · Affichages: 30

Staple1600

XLDnaute Barbatruc
Re : Cacher des colonnes automatiquement quand le sous total est de Zero

Bonjour à tous, Victor21, Si...


Si...
Si j'ai bu, ou si je suis maladroit, avec l'InputBox, je peux insérer les formules n'importe où.
Vous voudrez bien remédier à ce petit désagrément avant que ma bouteille soit vide, ou que Djoko mette la pâtée à Roger
(ou est-ce le contraire ? qui peut me dire car je n'ai pas BeinSport).

Merci de faire rapidement car je supporte mal les alcools forts.

Sinon Si, civet, heu pardon C:IV c'est un peu court jeune homme après 2007 (XFD oblige ;))

Pour le reste, j'aime bien ton effet bascule, ça me boulverse ;)
 
Dernière édition:

Si...

XLDnaute Barbatruc
Re : Cacher des colonnes automatiquement quand le sous total est de Zero

Re

Je ne fournis pas un produit fini et exempt de mauvaises manipulations (comme des clics irréfléchis, des saisies insensées de folles actions ...) :p !

C'est un déclic* que j'ai eu pour ne pas avoir à chercher des lignes parmi les milliers prévues et je n'ai pas mis en place tous les garde-fous nécessaires.

Désolé, je ne peaufinerai pas plus cette dernière proposition.

*c'est l'idée qui m'a interessé
 

Statistiques des forums

Discussions
312 286
Messages
2 086 801
Membres
103 392
dernier inscrit
doc_banane