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