Problème lors de la restitution d'un tableau VBA sur une feuille Excel
Bonjour,
J'ai utilisé une macro dictionnaire m’évitant quelconque doublons, et je la transfère dans un tableau, jusque là tout va bien.
voici la macro:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| Sub creation_tabcart()
Dim tabcart()
Dim z As Variant
Set MonDico = CreateObject("Scripting.Dictionary")
Sheets("BDD_produit").Activate
For Each z In ActiveSheet.Range([A2], [A65536].End(xlUp))
'si la donnée n'existe pas encore dans le dictionnaire
If Not MonDico.Exists(z.Value) Then
If z.Value Like "CART*" Then
'on l'ajoute dans le dictionnaire
MonDico.Add z.Value, z.Value
'et dans le tableau VBA
ReDim Preserve tabcart(1 To MonDico.Count)
tabcart(MonDico.Count) = z.Value
Debug.Print tabcart(MonDico.Count)
End If
End If
Next z
Sheets("liste des palettes").Activate
Sheets("liste des palettes").Range(Cells(2, 10), Cells(UBound(tabcart) + 2, 10)) = tabcart |
Ma fenêtre développeur m'affiche bien
Citation:
CART037
CART038
CART073
CART133
CART134
...
donc ce que je recherche
Le problème arrive ici,
Code:
1 2
| Sheets("liste des palettes").Activate
Sheets("liste des palettes").Range(Cells(2, 10), Cells(UBound(tabcart) + 2, 10)) = tabcart |
en effet, le tableau ainsi copier sur la feuille excel ne comporte que la première valeur du tableau dans chaque cellule (soit un tableau d'une colonne et x lignes toutes remplies par "CART037").
Cela fait 1 journée que je suis dessus et je n'arrive pas à comprendre d'où viens le problème.
Merci d'avance pour votre aide,
Up : La réponse est ici :
https://www.developpez.net/forums/d8...euille-calcul/
il suffisait de faire :
Code:
Sheets("liste des palettes").Range(Cells(2, 10), Cells(UBound(tabcart) + 1, 10)).Value = Application.Transpose(tabcart)
J'ai néanmoins un nouveau problème, l'apparition d'un erreur 5, sur le Cells(UBound(tabcart)=<l'indice n'appartient pas à la selection>
Je ne comprend pas... :bug: