bonjour tt le monde,
tout d'abord merci au membres de m'avoir aidé a resoudre un problème qui m'a cassé la tête, en fait il s'agit d'un code qui permet de :
- filtrer le lignes d'une feuille selon des critères bien determiné.
- copier les lignes filtées et les coller dans une autre feuille.
- retour à la feuille d'origine, et supression des lignes deja copiée et collée.
et le voilà:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 ' ' filtrage Macro ' Set WsCible = Worksheets("Sheet2") NextRow = WsCible.Cells(WsCible.Rows.Count, 1).End(xlUp).Row + 1 With Worksheets("Sheet1") Set Plage = .Range("A2:D" & .Range("A" & .Rows.Count).End(xlUp).Row) .Range("A1").AutoFilter .Range("$A$1:$D$3000").AutoFilter Field:=4, Criteria1:= "critère" On Error GoTo Gestion_erreur 'Copier/Coller de la plage filtrée dans "Sheet2" Plage.SpecialCells(xlCellTypeVisible).Copy WsCible.Cells(NextRow, 1) End With 'Suppression de la plage filtrée dans "Sheet1" Plage.EntireRow.Delete Worksheets("Sheet1").Range("A1").AutoFilter Gestion_erreur: Worksheets("Sheet1").Range("A1").AutoFilter Application.ScreenUpdating = True
le code est parfait , mais le problème ici c'est que lorsque l'operation de filtrage ne donne auccun resultat le programme passe à : "gestion_erreur" et c'est tout à fait normal, mon programme est un peu long càd j'utilise ce code plusieures fois afin d'effectuer des filtrages avec de différents critères (des centaines de critères) , en effectuant l'operation de debogage j'ai decouvert que le programme ne supporte pas l'absence de resultat de filtrage plus que deux fois pour un document execl , càd il passe au getion d'erreur qu'une seule fois ; la deuxième , il se plante,,
merci pour votre patience, et j'apprecie bien vos conseils,, help help![]()
![]()
Partager