Bonjour
J'ai une problématique en apparence très très simple, mais avec le code que je fais tourner ça ne fonctionne pas du tout, je sollicite donc votre aide sur mon code.
J'aimerais tout simplement écrire un tableau dans une feuille excel, et le faire d'un seul coup parce que sinon le temps passé est beaucoup trop long :
D'abord, quand j'utilise le code basique :
Code :
- montab = Range("B7:B20" )
- Range(Cells(1, 1), Cells(UBound(montab), 1)) = montab
|
Tout fonctionne
Par contre, quand je passe sur mon vrai code, j'ai besoin d'utiliser un tableau de taille variable
J'utilise donc redim preserve.
Sur mon vrai code, excel m'écrit 17 000 fois le premier élément du tableau.
J'ai essayé de faire un code intermédiaire : simplifié mais avec le redim preserve, et là c'est encore mieux : le truc n'écrit rien du tout
Code :
- Dim contenucolonne() As String
- For i = 1 To 10
- ReDim Preserve contenucolonne(i)
- contenucolonne(i) = i
- Next i
- Range(Cells(1, 1), Cells(UBound(contenucolonne), 1)) = contenucolonne
|
A priori, ce truc devrait écrire entre A1 et A10 les valeurs 1, 2, 3, ... 10
en fait il ne m'écrit rien du tout
Comment faire pour résoudre ce problème ?
J'avais déjà écrit du code VBA qui faisait ça sans avoir tous ces problèmes, j'ai peut-être oublié un léger détail mais je ne vois pas lequel..
Merci!
Edit : j'ai remplacé le as string par "as single" dans mon code ci dessus, et maintenant ça écrit quelque chose : uniquement des 0. Alors que la valeur 0 est carrément absente de mon "contenucolonne". Je n'y comprends plus rien..
Message édité par Laska- le 04-05-2017 à 19:05:17