Bonjour à Tous,

j'ai des problèmes pour transférer des données d'une variable VBA vers le classeur :
si le tableau n'est pas filtré : pas de soucis
si le tableau est filtré : des données aberrantes insérées !!!

Voici une macro qui présente le problème / Bug d'Excel ?

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
Sub Macro1()
    '\création d'un tableau temporaire pour l'expérience
        Columns("A:I").Delete Shift:=xlToLeft
        ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$I$50000"), , xlNo).Name = "TableauTEST"
        [TableauTEST].ListObject.TableStyle = "TableStyleLight9"
        For i = 1 To [TableauTEST].ListObject.DataBodyRange.Rows.Count
            [TableauTEST].ListObject.DataBodyRange.Cells(i, 1) = Int(Rnd * 10) + 1
        Next
 
    'fait des calculs sur une variable tableau (liée au tableau créé)
        Dim t():    t() = [TableauTEST].ListObject.DataBodyRange.Columns(1).Value
        For i = 1 To [TableauTEST].ListObject.DataBodyRange.Rows.Count
            t(i, 1) = t(i, 1) + 1
        Next
 
    'essai d'insertion du résultat sous différentes formulations vba
        [TableauTEST].ListObject.DataBodyRange.Columns(2) = t
        [TableauTEST].ListObject.DataBodyRange.Columns(3).Value = t
        Range([TableauTEST].ListObject.DataBodyRange.Columns(4).Address).Value = t
        For i = 1 To [TableauTEST].ListObject.DataBodyRange.Rows.Count '!!! Durée de réalisation
            [TableauTEST].ListObject.DataBodyRange.Cells(i, 5).Value = t(i, 1)
        Next
 
    'FILTRE DU TABLEAU :
        [TableauTEST].ListObject.Range.AutoFilter Field:=1, Criteria1:=1
 
    'RE-essai d'insertion du résultat sous différentes formulations vba
 
        '\\\ Les 3 lignes suivantes n'insèrent pas les bonnes données !!!!
        [TableauTEST].ListObject.DataBodyRange.Columns(6) = t
        [TableauTEST].ListObject.DataBodyRange.Columns(7).Value = t
        Range([TableauTEST].ListObject.DataBodyRange.Columns(8).Address).Value = t
 
        'celle-ci dessous fonctionne mais !!! Durée de réalisation
        For i = 1 To [TableauTEST].ListObject.DataBodyRange.Rows.Count '!!! Durée de réalisation
            [TableauTEST].ListObject.DataBodyRange.Cells(i, 9).Value = t(i, 1)
        Next
 
    'supprimer les filtres
        [TableauTEST].ListObject.Range.AutoFilter Field:=1
        'les colonnes 6/7/8 sont Aberrantes  !!!!!!!!!
End Sub
merci de votre aide pour résoudre ce problème