Bonjour,

Lorsque je fais une copie de valeurs d'une feuille à une autre, j'ai des résultats en #na qui après bloque la suite de la macro.

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
60
61
62
63
64
Sub Erreur_sage()
Dim i&, J&, K&
Dim Var As Variant, T As Variant
Dim Rng As Range
Dim na As Integer


Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
  
Worksheets("Erreurs Sage").Range("A2:I100").ClearContents
 
    Sheets("Erreurs Sage").Range("A2:I202").Value = Sheets("Livret").Range("A1:I201").Value
    Sheets("Erreurs Sage").Range("A203:I283").Value = Sheets("Poste 9 regard+couv").Range("A1:I81").Value
    Sheets("Erreurs Sage").Range("A284:I334").Value = Sheets("Poste 9 aspi").Range("A1:I51").Value
    Sheets("Erreurs Sage").Range("A335:I405").Value = Sheets("Appuis").Range("A1:I71").Value
    Sheets("Erreurs Sage").Range("A406:I446").Value = Sheets("Prélinteaux").Range("A1:I41").Value
    Sheets("Erreurs Sage").Range("A447:I497").Value = Sheets("Poste 10 regards").Range("A1:I51").Value
    Sheets("Erreurs Sage").Range("A498:I538").Value = Sheets("Poste 10 aspi").Range("A1:I41").Value
    Sheets("Erreurs Sage").Range("A539:I589").Value = Sheets("Poste 11 regards").Range("A1:I51").Value
    Sheets("Erreurs Sage").Range("A590:I630").Value = Sheets("Poste 11 aspi").Range("A1:I41").Value
      
With ThisWorkbook.Sheets("Erreurs Sage")
   
   For na = 1 To 700 Step 1
        If IsError(Cells(na, 3)) Then
            Cells(na, 3).Value = ""
    End If
    
    Next na
    For na = 1 To 700 Step 1
        If IsError(Cells(na, 2)) Then
            Cells(na, 2).Value = ""
    End If
    Next na
  
  For na = 1 To 700 Step 1
        If IsError(Cells(na, 1)) Then
            Cells(na, 1).Value = ""
    End If
    Next na
    
   
    Set Rng = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(3)(1, 9))
    T = Rng
    For i = LBound(T, 1) To UBound(T, 1)
        Var = T(i, 9)
        If Var <> "0" And Var <> "" And T(i, 1) <> "Code" Then
            J = J + 1
            For K = LBound(T, 2) To UBound(T, 2)
                T(J, K) = T(i, K)
            Next K
        End If
    Next i
   Rng.ClearContents
   If J > 0 Then Rng.Resize(J, UBound(T, 2)) = T
   .Columns("D:K").Delete Shift:=xlToLeft
    
End With

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
 
End Sub
Pour la copie en vert, on n'avait conseillé ici de mettre le With ThisWorkbook.Sheets("Erreurs Sage") plus haut et de supprimer Sheets("Erreurs Sage") devant les copies mais le résultat n'était plus bon.

J'ai rajouté la partie en jaune pour supprimer les NA, elle fonctionne très bien en manuelle mais en auto, elle ne fait rien et bug ensuite à la ligne If Var <> "0" And Var <> "" And T(i, 1) <> "Code" Then


Pour supprimer les colonnes la partie en rouge fonctionne sur Excel 2007 mais fait planter Excel 2013. Savez vous pourquoi?