si colonne I et colonne N et colonne T et colonne Z ne sont pas vides alors masquer

micie1509

XLDnaute Junior
Bonjour à tous,

Je cherche sur ce forum depuis plusieurs jours et je ne trouve pas exactement ce que je cherche. Je dois avouer que je ne connais absolument rien au VBA. J'ai un fichier avec 13066 lignes et j'aurais aimé pouvoir masquer les lignes qui sont vides (certaines cellules ont des formules). J'ai trouvé beaucoup de macros mais comme mon fichier comporte tellement de lignes, il faut parfois jusqu'à 10 minutes pour exécute le masquage de lignes. Alors j'ai trouver celle-ci:

Sub Macro1()
' Macro enregistrée le 13/08/2012 par Staple1600
Range("I11:I13680").AutoFilter Field:=1, Criteria1:=">0", Operator:=xlAnd

End Sub


et elle fonctionne très bien et très vite mais je n'arrive pas à la démystifier. J'aimerai quelle tienne compte des colonnes I, N, T et Z et pas seulement la colonne I ou tout "simplement" si la ligne est vide alors on masque.

Je vous remercie vraiment de l'aide que vous pourriez m'apporter
 

Pièces jointes

  • estimation.zip
    58 KB · Affichages: 39
  • estimation.zip
    58 KB · Affichages: 49
  • estimation.zip
    58 KB · Affichages: 47

micie1509

XLDnaute Junior
Re : si colonne I et colonne N et colonne T et colonne Z ne sont pas vides alors masq

Bonjour encore moi,

J'ai enlever beaucoup de lignes au fichier joint au premier message afin de respecter la taille recommandée, mais le fichier sur lequel je travaille et qui contient les 13000 lignes a une taille de 10301Ko et c'est pourquoi les macros que j'ai trouvé prennent trop de temps pour exécuter le masquage. Alors je rajoute un lien où le télécharger si quelqu'un est intéressé.

estimation

Merci et bonne journée !
 

micie1509

XLDnaute Junior
Re : si colonne I et colonne N et colonne T et colonne Z ne sont pas vides alors masq

Bonjour,

J'ai trouvé un moyen de fonctionner avec la macro que j'ai et je partage au cas où quelqu'un aurait le même problème que moi. J'ai inséré une nouvelle colonne qui elle devient I (et que je masquerai) et dans cette colonne j'ai inséré cette formule : =SI(OU(E13>0;M13>0;Q13>0;W13>0);1;""). Donc si certaines cellules ont un montant j'aurai un 1 dans cette cellule sinon la cellule reste vide et lorsque que j'exécute le masquage tout fonctionne.

Merci à ceux qui m'ont lu.
 
Dernière édition:

Gorfael

XLDnaute Barbatruc
Re : si colonne I et colonne N et colonne T et colonne Z ne sont pas vides alors masq

Salut micie1509 et le forum
Pas sûr de tout comprendre, alors quelques idées
- Ça ne sert à rien de mettre un gros fichier pour exemple : le but est d'avoir un fichier qui permette de conmprendre ce que tu veux faire, pas de l'exploiter. Expliquer qu'il est gros est important, mais 10 ligne suffisent, à condition qu'il soit un reflet correct ey qu'on puisse s'appuyer dessus.

- Si j'ai bien compris, tu as un fichier dont tu veux masquer les lignes qui sont finies. Vu que le masquage de toutes les lignes concernées, comme il y en a beaucoup, est lent,
  • soit on crée une colonne de synthèse qui vérifie, par formules, l'état des colonnes concernées et on filtre sur cette colonne
  • soit on crée plusieurs macros
    • une pour masquer/démasquer toutes les lignes, sur commande
    • une automatique qui masque la ligne si on "modifie" la ligne et que toutes les colonnes concernées sont remplies
Pour tester une ligne, il suffit que le résultat de la multiplication des colonnes soit un nombre
A+

EDIT : je viens de regarder ton poste, et j'ai un doute :
=SI(OU(E13>0;M13>0;Q13>0;W13>0);1;""). si M13, Q13 et W13 sont vides (=0) mais que E13 non, le résultat de ta condition est vrai... Je mettrais un ET ou plus simple, =SI((E13>0)*(M13>0)*(Q13>0)*(W13>0);1;"").
 
Dernière édition:

Statistiques des forums

Discussions
294 210
Messages
1 936 894
Membres
188 098
dernier inscrit
flow77