Salut les gars !
J'ai une macro qui me sert pour trier de 34 000 à 55 000 lignes sur une largeur de 50 à 100 colonnes.
Dans chaque cellule, des formules, de la plus simple : NB.SI(C15:O15;"1")
à des plus complexes : SI(1+$AF$4>$AH$7;"0";SOMME(SI($AG$4=2;NB.SI(C15
15;$AH$4));SI($AG$4=3;NB.SI(C15:E15;$AH$4));SI($AG$4=4;NB.SI(C15:F15;$AH$4));SI($AG$4=5;NB.SI(C15:G15;$AH$4));SI($AG$4=6;NB.SI(C15:H15;$AH$4));SI($AG$4=7;NB.SI(C15:I15;$AH$4));SI($AG$4=8;NB.SI(C15:J15;$AH$4));SI($AG$4=9;NB.SI(C15:K15;$AH$4));SI($AG$4=10;NB.SI(C15:L15;$AH$4));SI($AG$4=11;NB.SI(C15:M15;$AH$4));SI($AG$4=12;NB.SI(C15:N15;$AH$4));SI($AG$4=13;NB.SI(C15:O15;$AH$4))))
ou encore :SI(NB.SI(DP15:EA15;"11")>=1;1;0)+SI(NB.SI(DP15:EA15;"1N")>=1;1;0)+SI(NB.SI(DP15:EA15;"12")>=1;1;0)+SI(NB.SI(DP15:EA15;"N1")>=1;1;0)+SI(NB.SI(DP15:EA15;"NN")>=1;1;0)+SI(NB.SI(DP15:EA15;"N2")>=1;1;0)+SI(NB.SI(DP15:EA15;"21")>=1;1;0)+SI(NB.SI(DP15:EA15;"2N")>=1;1;0)+SI(NB.SI(DP15:EA15;"22")>=1;1;0)
Et avec des formules matricielles, ou des decaler faisant appel à d'autres formules etc...
Avec un Athlon 2000, 1Ghz ram, Xp et Office Pro 2000, ça rame pas mal, et autant vous dire que j'ai largement le temps d'aller me faire un café de le laisser un peu réfroidir et de le boire....héhéhé...!
En fait toutes ces formules croisées m'affichent 1, ou 0 ou Faux.
En colonne "A" j'ai une formule qui écrit "Faux", dès l'instant que j'ai un seul "Faux" dans ma ligne.
Puis j'ai une macro qui teste la colonne "A" et me delete toutes les lignes correspondante.
Voici ma macro :
Sub DeleteFaux()
'
' DeleteFaux Macro
' Macro enregistrée le 21/02/2003 par Moa
Sheets("Filtrage").Select
Application.Calculation = xlManual
Sheets("Filtrage").Activate
i = 1
While Range("A15").Offset(i).Value <> ""
If Range("A15").Offset(i).Value = False Then
Range("A15").Offset(i).EntireRow.Select
Selection.Delete Shift:=xlUp
i = i - 1
End If
i = i + 1
Wend
Application.Calculation = xlCalculationAutomatic
Call RazFiltres
Call CompteLigneFiltrage
Call MajFormules
End Sub
J'ai supprimé volontairement le "Application.ScreenUpdating = False", car de temps en temps le Pc Plante pendant cette macro, et je ne le vois pas.
J'ai éssayé de modifier pendant des heures cette macro afin de la rendre plus rapide.
Mais mon niveau en Vba est vraiment trop trop Débutant.
Donc, je pense que vous allez pouvoir m'aider à modifier cette macro.
Du moins si l'envie vous en prend, je vous remercie Grandement d'avance.
Merci
@ +
Moa