Tableau VBA vers une feuille de calcul

Résolu
BoneroPross Messages postés 27 Date d'inscription   Statut Membre Dernière intervention   -  
BoneroPross Messages postés 27 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je suis neophite en programmation en VBA. je tiens tout d'abord a remercier tous ceux qui animent ce site et contribuent à l'alimenter de reponses aux questions posées par les uns et les autres.

mon probleme est le suivant:

jai un tableau en vba x() dont je peux transferer les elements vers une plage de feuille de calcul.
Mais seul le 1er element du tableau x(1) est reellement transferé vers les cellules de ma plage.
je precise que je ne veux pas utiliser de loop pour ce transfert .
SVP aidez moi.

Sub TableauVbaVersFeuilleDeCalcul()
'je veux transferer les elements de mon tableau VBA vers une plage _
de feuille de calcul.

Dim x(1 To 5) As Double 'mon tableau VBA.
Dim i As Integer
For i = 1 To 5
x(i) = Rnd
Debug.Print x(i) 'juste pour visualiser.
Next i

Worksheets("feuil5").Activate

Dim Plage As range
Set Plage = range("B1:B5")
Plage.Value = x ' Mais seul le 1er element du tableau ie x(1)est recopié dans les cellules de ma plage.

End Sub
A voir également:

2 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour,

essaies:
Worksheets("feuil5").Activate
 Range("B1:B5") = Application.Transpose(x)


ou (moi je préfère mais...)
Worksheets("feuil5").Activate
range("B1").resize(ubound(x),1)=Application.Transpose(x)
1
BoneroPross Messages postés 27 Date d'inscription   Statut Membre Dernière intervention   1
 
ah okkk,
thanks a lot Michel.
en fait un tableau unidimensionnel en VBA est " TOUJOURS" consideré comme une plage "à une ligne" sur une feuille de calcul d'où l'utilisation de Application.worksheetfunction.transpose(x).

Pour preuve , cette instruction marche bien.

Worksheets("feuil5").Activate
Dim i As Integer
For i = 1 To 5
x(i) = Rnd
Debug.Print x(i) 'juste pour visualiser.
Next i

Range("A1:E1").value = x


i understood where my mistake was coming from.
ps. ta 2nde solution est plus elegante ;-)
1