De l’importance des variables tableaux en VBA

Voici le résultat d'un petit test de chargement en mémoire d'un grand tableau.

Je compare un chargement direct dans une variable tableau vs. un chargement cellule par cellule.

Voici le fichier.

Les résultats sont sans appels...

Et le code du fichier qui vous montre une des façons de créer un timer dans du VBA:

Sub Bouton1_Cliquer()
'Definition des variables
Dim arrPlage() As Variant
Dim t As String
Dim i As Long
Dim j As Long

'On charge directement les valeurs
t = "Début du programme : " & Application.WorksheetFunction.Text([now()] - tStart, "h:mm:ss.00")
 arrPlage = ActiveSheet.UsedRange.Value
t = t & vbCrLf & "Fin mise en mémoire usedrange values: " & _
Application.WorksheetFunction.Text([now()] - tStart, "h:mm:ss.00")

'On charge les formules
arrPlage = ActiveSheet.UsedRange.FormulaR1C1
t = t & vbCrLf & "Fin mise en mémoire usedrange formula: " & _
Application.WorksheetFunction.Text([now()] - tStart, "h:mm:ss.00")

'on charge en lisant cellule par cellule
For i = LBound(arrPlage, 1) To UBound(arrPlage, 1)
    For j = LBound(arrPlage, 2) To UBound(arrPlage, 2)

        arrPlage(i, j) = ActiveSheet.Cells(i, j).Value
    
    Next
Next
t = t & vbCrLf & "Fin mise en mémoire par lecture de chaque cellule : " & _
Application.WorksheetFunction.Text([now()] - tStart, "h:mm:ss.00")

'on affiche le resultat.
MsgBox t

End Sub

Pour en savoir plus sur les variables tableaux, vous pouvez consulter cette formation:
https://www.xlerateur.com/collection-vba-avance-volume-3-les-variables-tableaux-en-vba-2/

A bientôt

Gaetan

Pour marque-pages : Permaliens.

3 réponses à De l’importance des variables tableaux en VBA

  1. Caroline dit :

    Bonjour Gaetan,

    Je voulais télécharger le fichier excel que vous mettez à dispo pour expliquer l’importance du tableau en VBA…impossible voici le message : “l’URL demandée a été bloquée par le module de base de données anti-virale de McAffee Web Gateway.
    Catégorie d’URL : Malicious Sites
    Réputation : High Risk…”

    Connaissant votre probité, il y a peut-être un pb technique sur votre site ou sur le site de McAfee.

    Cordialement,

  2. Gaetan dit :

    Merci pour le retour, effectivement, il s’agit d’un faux-positif.
    Je viens de l’ouvrir et Avast ne l’a pas détecté comme contenant un virus, je n’ai pas eu de problème et personne ne m’a remonté d’informations concernant des fichiers contenant des virus. Donc, a priori tout est correct.
    Sinon, vous pouvez copier-coller le code VBA
    Cordialement
    Gaetan

  3. Ping :Mettre une plage dans une variable tableau (array) - XLérateur

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.