Utilisation de tableaux dans VBA
Bonjour à tous,
J'ai beaucoup apprécié votre publication "Utiliser les variables tableau en VBA Excel" de SilkyRoad.
Félicitation à cette personne et merci à Developpez.com de mettre à notre disposition ces outils très bien ficelés !
J'ai 3 questions précises à poser concernant le sujet actuel :
1/ Utiliser un tableau pour copier une plage de cellule relativement grande (comme indiqué page 3 du manuel) est-ce vraiment plus rapide ou moins "lourd" pour la mémoire interne que de faire par VBA un classique "Copier/Coller" ?
2/ Dans le développement du programme qui m'occupe actuellement, la plage dont je parle ci-dessus consiste en de nombreuses lignes et une vingtaine de colonne. Aucune procédures de mon programme n'utilise plus de 4 colonnes, mais elles doit pouvoir accéder à toutes les lignes.
Pour économiser de la mémoire, j'ai pensé à 3 solutions.
> La première est de charger dans plusieurs tableaux les seules colonnes nécessaires à la procédure (en groupant, si c'est possible, des colonnes consécutives dans le même tableau).
> La seconde est de copier à droite de ma plage les seules colonnes dont j'ai besoin et de charger dans un seule tableau cette nouvelle plage plus compacte.
> La troisième est de créer dans ma feuille Excel une formule nommée qui fera automatiquement le transfert de ma solution 2 aussitôt que ma procédure aura indiqué dans une cellule "pilote" l'opération que la feuille doit exécuter.
Cette troisième solution a ma préférence dés lors que ma formule est présente sur chaque ligne pour transférer tout changement ultérieur des données de la plage originale vers la plage compactée.
Mais avant d'essayer cette solution, je dois recevoir, si vous voulez bien, une réponse à ma troisième question.
3/ Si un procédure VBA modifie la valeur d'une cellule dans un feuille Excel et que cette cellule intervient dans une formule présente dans d'autres cellules (nombreuses), ces dernières seront-elles mises à jour avant que VBA ne traite la suite de la procédure ?
Cela, pour lui permettre de travailler sur de nouvelles données.
Pour terminer cette longue introduction à ma nouvelle discussion, permettez-moi de suggérer une petite correction à la publication citée au début :
En page 9 vous indiquez :
"Ajoutez le mot clé "Preserve" pour agrandir un tableau dynamique tout en conservant les valeurs existantes."
J'ai souvent utilisé ce mot-clé pour REDUIRE la taille d'un tableau.
Les données stockées dans la taille restante sont AUSSI préservées (dans ma version d'Excel au moins).
Cela peut-être très utile pour éliminer au fur et à mesure des actions traitées en boucle, par exemple...
Merci à tous ceux qui auront eut la patience de me lire et surtout à ceux qui prendront le temps d'y répondre...