Bonjour à tous
Dans une macro j'utilise la procédure suivante pour supprimer toutes les lignes qui ne correspondent pas à l'exercice demandé :
Dim Exercice As String
retour:
Saisie_exercice:
Exercice = InputBox("Veuillez saisir l'exercice budgétaire !", "Exercice budgétaire")
If IsNumeric(Exercice) Then
Range("B2").Select
Range(Selection, Selection.End(xlDown)).Select
Dim I As Long
Dim Plage As Range
Set Plage = Range("B2:B" & Range("B2").End(xlDown).Row)
For I = Plage.Cells.Count To 1 Step -1
If Plage.Cells(I).Value <> Exercice Then
Plage.Cells(I).EntireRow.Delete
' Else
End If
Next
GoTo OK
End If
GoTo retour
Cette façon de faire marche très bien mais le problème c'est qu'elle dure un peu trop longtemps à mon goût car je traite entre 4000 et 8000 lignes. Ce que je souhaiterais c'est une modification de la macro pour dire :
"je selectionne toutes les lignes qui ne correspondent pas à l'exercice demandé et les supprime".
Si une solution pouvait m'être apportée, d'avance merci.
Quincy
Dans une macro j'utilise la procédure suivante pour supprimer toutes les lignes qui ne correspondent pas à l'exercice demandé :
Dim Exercice As String
retour:
Saisie_exercice:
Exercice = InputBox("Veuillez saisir l'exercice budgétaire !", "Exercice budgétaire")
If IsNumeric(Exercice) Then
Range("B2").Select
Range(Selection, Selection.End(xlDown)).Select
Dim I As Long
Dim Plage As Range
Set Plage = Range("B2:B" & Range("B2").End(xlDown).Row)
For I = Plage.Cells.Count To 1 Step -1
If Plage.Cells(I).Value <> Exercice Then
Plage.Cells(I).EntireRow.Delete
' Else
End If
Next
GoTo OK
End If
GoTo retour
Cette façon de faire marche très bien mais le problème c'est qu'elle dure un peu trop longtemps à mon goût car je traite entre 4000 et 8000 lignes. Ce que je souhaiterais c'est une modification de la macro pour dire :
"je selectionne toutes les lignes qui ne correspondent pas à l'exercice demandé et les supprime".
Si une solution pouvait m'être apportée, d'avance merci.
Quincy