Bonjour,

Je vous explique mon souci.

J'ai un tableau dans lequel j'applique un filtre, suite a cela j'ai besoin de récupérer seulement les cellule visible après filtre et de les copier dans une autre feuille.

donc logiquement : SpecialCells(xlCellTypeVisible).copy

sauf que cette fonction me copie bien les cellule visible, mais elle me copie également tout ce qui n'est pas visible dans ma nouvelle feuille.

Ce qui est étrange, c'est que les cellule non visible qui sont quand même copié, n'apparaissent pas dans ma nouvelle feuille, je ne m'en rend compte seulement quand je sauvegarde mon fichier.
Quand je sauvegarde, mon fichier passe de 57Ko a 50.000Ko.

Si ce n'est pas clair, n’hésitez pas a me le dire. Voici une copie de mon code.

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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
 
Sub ReadDataFromCloseFile()
    On Error GoTo ErrHandler
    Application.ScreenUpdating = False
 
    Dim dir As String
    Dim file As String
 
    dir = "C:\mon_chemin"
 
    ChDrive "C"
    ChDir dir
    file = Application.GetOpenFilename()
 
    'if file different of "Faux" (False As String)
    If file <> "Faux" Then
 
        Dim src As Workbook
        Dim DEST As Workbook
        Set DEST = ThisWorkbook
 
        ' OPEN THE SOURCE EXCEL WORKBOOK IN "READ ONLY MODE".
        Set src = Workbooks.Open(file, True, True)
 
        'GET THE TOTAL ROWS FROM THE SOURCE WORKBOOK.
        Dim iTotalRows As Integer
        iTotalRows = src.Worksheets("ADX-UAE Alertes").Range("C16:C" & Cells(Rows.Count, "C").End(xlUp).Row).Rows.Count
 
        'Applique un filtre sur la colonne 23
        src.Worksheets("ADX-UAE Alertes").Range("$W$16:$W" & iTotalRows).AutoFilter Field:=23, Criteria1:="BHL en cours – Action support FAL"
 
        'Copie la selection sur le classeur ouvert
        src.Worksheets("ADX-UAE Alertes").Range("A15:V").End(xlDown).SpecialCells(xlCellTypeVisible).Select
        Application.CutCopyMode = False
        Selection.Copy
 
 
        'Colle la selection sur le classeur actif
        ActiveSheet.Paste Destination:=DEST.Worksheets("Extract J").Range("A2")
 
 
        ' CLEAR CLIPBOARD
        Application.CutCopyMode = False
 
        ' CLOSE THE SOURCE FILE.
        src.Close False             ' FALSE - DON'T SAVE THE SOURCE FILE.
        Set src = Nothing
 
 
    End If
 
    MsgBox "copie appliquée !"
 
 
ErrHandler:
    Application.EnableEvents = True
    Application.ScreenUpdating = True
 
End Sub

merci pour vos "future" réponses !