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 !
Patrice33740
Messages postés8556Date d'inscriptiondimanche 13 juin 2010StatutMembreDernière intervention 2 mars 202321 16 mai 2020 à 11:11
Bonjour,
Poster sur plusieurs forums, est un manque de respect envers tous les bénévoles qui te consacrent de leur temps pour résoudre ton problème !
La perversité de cette démarche, c'est que tu ne nous informes pas que tu as posté sur d'autres forums !
Tu les laisses se décarcasser dans leur coin, sans leur donner la possibilité de consulter les réponses, souvent très intéressantes, des autres forums.
Cela aboutit généralement à leur faire perdre du temps qu'ils pourraient consacrer à d'autres personnes qui eux aussi ont besoin d'aide.
Avec des tableaux en moins de 0.05 seconde :
Sub enreg_tab()
Dim tabF, tabL, i As Long
Dim t As Single
t = Timer
tabF = Range("F2:F5001").Value
tabL = Range("L2:L5001").Value
For i = 1 To 5000
tabF(i, 1) = tabF(i, 1) - tabL(i, 1)
Next i
Range("F2:F5001").Value = tabF
Debug.Print Timer - t & " seconde"
End Sub
Whismeril
Messages postés18423Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 8 juin 2023624 16 mai 2020 à 12:02
Salut Patrice,
beaucoup postent sur plusieurs forums...
Le tuto que je lui ai mis en lien explique qu'il faut passer de "cellules" à tableau et inversement comme tu l'as fait.