Compléter une plage en utilisant un array

Bonjour à tous,

Voici un code VBA qui explique comment remplir une plage avec un array.

On veut remplacer une série d'instructions comme celle-ci :
Range("A1").Value = "pif"
Range("A2").Value = "pof"
Range("A3").Value = "paf"

Par quelque chose de plus propre.

On va d'abord créer l'array (le tableau) :
Dim arrValeur() as string
redim arrValeur (1 to 3, 1 to 1)

Puis, on va attribuer les valeurs à l'array :
arrValeur(1,1) = "pif"
arrValeur(2,1) = "pof"
arrValeur(3,1) = "paf"

Et finalement, on va affecter les valeurs à la plage :
Range("A1:A3").value = arrValeur

D'où le code final que vous pouvez copier dans un module :
Sub RemplitPlageAvecArray()
Dim arrValeur() As String
ReDim arrValeur(1 To 3, 1 To 1)
arrValeur(1, 1) = "pif"
arrValeur(2, 1) = "pof"
arrValeur(3, 1) = "paf"
Range("A1:A3").Value = arrValeur
End Sub

On peut aussi améliorer le code pour faire référence aux colonnes. Dans ce cas, le deuxième argument de arrValeur fera référence aux colonnes.
Par exemple :
Sub RemplitPlageAvecArray()
Dim arrValeur() As String
ReDim arrValeur(1 To 3, 1 To 2)

arrValeur(1, 1) = "pif"
arrValeur(2, 1) = "pof"
arrValeur(3, 1) = "paf"

arrValeur(1, 2) = "plif"
arrValeur(2, 2) = "plof"
arrValeur(3, 2) = "plaf"

Range("A1:B3").Value = arrValeur
End Sub

A bientôt.

Gaëtan

Pour marque-pages : Permaliens.

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.