Un macro trops lent
Résolu
hamouchka
Messages postés
14
Statut
Membre
-
hamouchka Messages postés 14 Statut Membre -
hamouchka Messages postés 14 Statut Membre -
Bonjour,
J'ai un macro qui est supposé de chercher une valeur dans une colonne (D2:D4555)
mais cela prend une éternité pour être exécuter, j'ai essayé sans sucés d'ajouter "usedrange" pour éviter que excel cherche tous les cellules jusqu'à D4555 je veux qu'il chercher seulement les cellules utilisé puisque la feuille n'est pas était complétée à 100%
voici le macro :
Sub hidecrows()
Dim tempo As Date
Dim rCell As Range
Sheets("checks-sheet").Select
tempo = InputBox(Prompt:="Filter Checks", Title:="Choose a Date", Default:="Enter the date here")
For Each rCell In Range("D2:D4555")
If Not rCell.Value = tempo Then
Rows(rCell.Row).Hidden = True
End If
Next
End Sub
J'ai besoin d'aide SVP, avez vous une idée ?
Un grand merci en avance!
J'ai un macro qui est supposé de chercher une valeur dans une colonne (D2:D4555)
mais cela prend une éternité pour être exécuter, j'ai essayé sans sucés d'ajouter "usedrange" pour éviter que excel cherche tous les cellules jusqu'à D4555 je veux qu'il chercher seulement les cellules utilisé puisque la feuille n'est pas était complétée à 100%
voici le macro :
Sub hidecrows()
Dim tempo As Date
Dim rCell As Range
Sheets("checks-sheet").Select
tempo = InputBox(Prompt:="Filter Checks", Title:="Choose a Date", Default:="Enter the date here")
For Each rCell In Range("D2:D4555")
If Not rCell.Value = tempo Then
Rows(rCell.Row).Hidden = True
End If
Next
End Sub
J'ai besoin d'aide SVP, avez vous une idée ?
Un grand merci en avance!
5 réponses
-
Salut le forum
Hamouchka, essaye comme ceci
Sub hidecrows() Dim tempo As Date Dim firstaddress As String Dim c As Range tempo = InputBox(Prompt:="Filter Checks", Title:="Choose a Date", Default:="Enter the date here") With Sheets("checks-sheet").Range("D2:D4555") Set c = .Find(tempo, LookIn:=xlValues) If Not c Is Nothing Then firstaddress = c.Address Do Set c = .FindNext(c) c.EntireRow.Hidden = True Loop While Not c Is Nothing And c.Address <> firstaddress End If End With End Sub
Mytå -
Merci beaucoup!
C'est excellent sauf que l'autre macro est supposé de cacher tout se qui n'est pas égale à "tempo" ton macro fais l'inverse! comment je peux le corriger ?
encore Merci! -
Bonsoir,
Tu pourrais utiliser le filtre automatique :
Range("D1:D4555").AutoFilter Field:=1, Criteria1:=CDate(tempo)
eric -
J'ai pas le droit d'utiliser les fonctions d'excel comme autofilter....
merci -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
C'est régler les amis voici ce j'ai fait :
Sheets("checks-sheet").Select
'selectionner la plage utilisée seulement
Range(Cells(2, 4), Cells(Rows.Count, 4).End(xlUp)).Select
'Boucle qui recherche la date de ce jours dans la plage séléctionnée avant
For Each rCell In Selection
If Not rCell.Value = Date Then '=Date pour comparer avec la date de jours
Rows(rCell.Row).Hidden = True
End If
Next
comme ca il prend juste la selection qui contien qlq chose et c beaucoup pluss rapide
Merci Beaucoup!!!!