Opérations sur les éléments d'un tableau à deux dimensions

Salut,

J’ai une petite préoccupation concernant les tableaux en VBA. En effet, j’essaie un peu de m’exercer en remplissant un tableau de 2x5000 éléments (entiers) qui proviennent de colonnes F et L.

L’objectif est de faire la soustraction pour obtenir une différence entre les éléments de F et L et ensuite, les remplacer dans la colonne F.

Avec ce bout de code que j’ai essayé, ça marche:

Sub enreg_tab()

Dim tab_exemple(4999, 1)

For i = 0 To 4999

'Enregistrement des valeurs dans le tableau

tab_exemple(i, 0) = Range("F" & i + 2)

tab_exemple(i, 1) = Range("L" & i + 2)

'Soustraction et remplacement

Range("F" & i + 2) = tab_exemple(i, 0) - tab_exemple(i, 1)

Next

End Sub

Sauf que ça me prend environ 20 minutes pour finaliser l’opération. Alors, étant débutant, je me tourne vers vous pour enfin, essayer de trouver une alternative plus rapide.

Cordialement !

Salut Decarlo et

à tester

Sub Soustraire()
Application.ScreenUpdating = False
For i = 2 To 5001
Range("F" & i) = Range("F" & i) - Range("L" & i)
Next i
Application.ScreenUpdating = True
End Sub

Bonne nuit

Bonjour,

Une autre proposition.

Cdlt.

3decarlo.xlsm (148.45 Ko)
Public Sub Decarlo()
Dim tbl As Variant, arr() As Double
Dim lastRow As Long, i As Long
    With ActiveSheet
        lastRow = .Cells(.Rows.Count, 6).End(xlUp).Row
        tbl = .Cells(2, 6).Resize(lastRow - 1, 2).Value
        ReDim arr(1 To UBound(tbl))
        For i = LBound(tbl) To UBound(tbl)
            arr(i) = tbl(i, 2) - tbl(i, 1)
        Next i
        .Cells(2, 6).Resize(UBound(tbl)).Value = Application.Transpose(arr)
    End With
End Sub

Merci de m'avoir répondu aussi vite que je ne le croyais.

Mon problème est résolu grâce à vous!

Une fois de plus merci.

Rechercher des sujets similaires à "operations elements tableau deux dimensions"