Filtrer defitrer ou masquer demasquer en fonction d'1 ou plusieur criteres

Chombi

XLDnaute Occasionnel
Bonjour à tous

Après plusieurs jour de recherche sans résultat je cherche le moyen le plus rapide pour masquer ou filtrer des lignes.
Mon tableau comporte plus de 5000 lignes et 100 colonnes avec des formule dans la plupart des cellules. Filtrer est tres long et les codes avec boucle aussi

J'ai trouvé ce code que j'ai adapté mais il ne fonctionne pas... il me masque toute les lignes a partir de DC5
il me semble pourtant très rapide

Dim lig As Long
With Sheets("Livraison")
lig = .Cells(Rows.Count, 1).End(xlUp).Row
.Range("DC5").FormulaR1C1 = "=IF(RC[-42]=0,TRUE,"""")"
With .Cells(lig, 1).SpecialCells(xlCellTypeFormulas, 4) 'information sur les cellules en DC5
.EntireRow.Hidden = True
End With
End With

Merci
 

st007

XLDnaute Barbatruc
Re : Filtrer defitrer ou masquer demasquer en fonction d'1 ou plusieur criteres

Bonsoir,
Ceci ne suffit pas ?

VB:
Sub masqueligne()

Application.ScreenUpdating = False
With Sheets("Livraison")
    For i = .Range("A" & Rows.Count).End(xlUp).Row To 1 Step -1
        If .Cells(i, "BM") = 0 Then .Cells(i, "BM").EntireRow.Hidden = True
    Next i
End With
Application.ScreenUpdating = True
End Sub
 
Dernière édition:

Chombi

XLDnaute Occasionnel
Re : Filtrer defitrer ou masquer demasquer en fonction d'1 ou plusieur criteres

Bonjour st007

tout d'abord toute mes excuses pour ma réponse tardive j’étais très occupé c'est dernier temps

Votre code fonctionne très bien et je vous en remercie cependant j'ai trouvé plus rapide ci après 2 secondes 44 contre 21 secondes 17
sur 2000 lignes

With Sheets("Livraison")

.[DG:dG].Replace What:=False, Replacement:="", LookAt:=xlWhole
.[DG:dG].SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True


End With

par contre pour le reaffichage c'est beaucoup plus long (17 secondes 64) est ce que quelqu'un aurait une solution ?

j'ai fait ceci dans le même esprit:

With Sheets("Livraison")
.[DG:dG].SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = False

End With

Merci à tous et encore mille excuses pour le retard
 
Dernière édition:

Chombi

XLDnaute Occasionnel
Re : Filtrer defitrer ou masquer demasquer en fonction d'1 ou plusieur criteres

Bonjour à tous

en fait c'est même plus de 2 minutes avec ton code ou le mien sur 5000 lignes, j'imagine même pas le temps sur 8000 lignes

est ce que quelqu'un peut m'expliquer les raisons de la lenteur d'excel
en utilisant le filtre d'excel (sans macro) sur 5000 lignes et 100 colonnes cela met un temps fou
est ce l'age avancé de mon ordi ?
est ce excel 2007 ?
est ce les formules ?
ou je ne sais quoi ?

Je ne comprend pas pourquoi excel donne la possibilité de remplir 65000 et quelques lignes et colonnes pour en fin de compte ne pas pouvoir dépasser 2000 sous peine de voir son outil presque inutilisable...
c'est très frustrant d’élaborer des bouts de programme qui fonctionnent très bien tant qu'il ne sont pas trop gros mais qui deviennent inutilisable des qu'ils grossissent

Merci de vos réponses
excuser moi d’être lourd :)
 

Pierrot93

XLDnaute Barbatruc
Re : Filtrer defitrer ou masquer demasquer en fonction d'1 ou plusieur criteres

Bonjour,

essaye peut être avec ceci :
Code:
Application.Calculation = xlCalculationManual
With Sheets("Livraison")
    .[DG:dG].SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = False
End With
Application.Calculation = xlCalculationAutomatic

bon après midi
@+
 

Chombi

XLDnaute Occasionnel
Re : Filtrer defitrer ou masquer demasquer en fonction d'1 ou plusieur criteres

Bonjour Pierrot93

Merci malheureusement Application.Calculation = Manual était déjà dans mon code !
Le temps pour masquer une partie des 6004 lignes suivant un critère est de 16 secondes, pour reafficher les 6004 lignes
il me faut 2 minute 47

Bon A.M
 

Pierrot93

XLDnaute Barbatruc
Re : Filtrer defitrer ou masquer demasquer en fonction d'1 ou plusieur criteres

Re,

Merci malheureusement Application.Calculation = Manual était déjà dans mon code !

bah... on ne le voit pas avec se que tu montres... essaye peut être aussi de cibler la dernière ligne pour n'agir que sur les lignes concernées... voir aussi si dans ton classeur tu n'as pas de procédures événementielles...
 

Chombi

XLDnaute Occasionnel
Re : Filtrer defitrer ou masquer demasquer en fonction d'1 ou plusieur criteres

Oui oui c'est vrai tu ne pouvais pas le deviner excuse moi

en effet j'ai une procédure evévénementielles que j’empêche de fonctionner pendant l’exécution du code donc normalement pas d'incidence, je l'ai quand même retiré mais ça ne change rien.
Par cibler la dernière cellule tu veux dire: Pas de code qui parte du bas et remonte jusqu’à la dernière cellule non vide?
comment je fais cela?

Je ne comprend pas pourquoi le code :
.[DG:dG].Replace What:=False, Replacement:="", LookAt:=xlWhole
.[DG:dG].SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True

prend 16 secondes

et que le code :
.[DG:dG].Replace What:=False, Replacement:="", LookAt:=xlWhole
.[DG:dG].SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = False

prend 2 minutes 47

évidement le deuxième ne sert a rien mais pourquoi tant de différence

ci joint fichier très allégé (plus que 750 lignes) on a 1seconde pour 5 secondes

Merci
 

Pièces jointes

  • Copie de Test masquer afficher.zip
    287.2 KB · Affichages: 33

Chombi

XLDnaute Occasionnel
Re : Filtrer defitrer ou masquer demasquer en fonction d'1 ou plusieur criteres

Bonjour à tous

me revoilà avec mon fichier lourd

je viens de trouver une solution qui m’améliore sensiblement la vitesse sur mes 6004 lignes surtout pour l'affichage
Au passage merci Misange qui m'a mis sur la voie ... Qui cherche trouve
en effet j'ai des MFC !
je les supprimes en début de code je réaffiche mes lignes puis je recrée mes MFC en fin de code
Resultat: mes lignes s'affiche en 9 secondes contre presque 3 minutes avant.... formidable

Merci à Pierrot93 et st007

si quelqu'un a une solution pour encore améliorer je suis preneur
 

Discussions similaires

Réponses
12
Affichages
553

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 165
Messages
2 085 880
Membres
103 009
dernier inscrit
dede972