Problème de Variable tableau

Le
syl.news2
Bonjour,

J'utilise une variable tableau dans laquelle je place une partie d'une
feuille de calcul, soit une sélection
tblVariable1() = Selection
Par la suite des opérations sont faites sur le contenu de cette
variable tableau et le résultat est stocké dans une deuxième variable
tableau. Je ne mettrai pas le code ici car non pertinent, si je fais
un "Debug.Print tblVariable1, tblVariable2" les données ressemblent à
ceci
2008-12-10 01:11:59 2008-12-10 01:15:00
2008-12-10 01:26:23 2008-12-10 01:30:00
Maintenant j'en viens au problème Si je colle le contenu de ces
variables dans la feuille ça ne fonctionne pas avec la variable
tblVariable2.
Ex:
Range("A20:A22") = tblVariable1, colle le contenu de la variable dans
la feuille
Range("A20:A22") = tblVariable2, ne colle rien, même si le débug.prin=
t
démontre que la variable contient les données requises.
Les variables ont été initialement déclarés comme variant Dim
tblVariable1() As Variant
Dim tblVariable2() As Variant

Merci.
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #18253441
Fais ce petit exercice : les valeurs du tableau S que je transfère
au tableau T sont recopiées en G

'------------------------------
Sub test()
Dim T() As Variant, S() As Variant
S = Range("A1:C3") ' évidemment cette plage contient des données
T = S
Range("G1").Resize(UBound(T, 1), UBound(T, 2)) = T
End Sub
'------------------------------

Conclusion, l'explication de ta problématique n'est pas complète
comment transfères-tu tes données d'un tableau à l'autre ?




Bonjour,

J'utilise une variable tableau dans laquelle je place une partie d'une
feuille de calcul, soit une sélection...
tblVariable1() = Selection
Par la suite des opérations sont faites sur le contenu de cette
variable tableau et le résultat est stocké dans une deuxième variable
tableau. Je ne mettrai pas le code ici car non pertinent, si je fais
un "Debug.Print tblVariable1, tblVariable2" les données ressemblent à
ceci...
2008-12-10 01:11:59 2008-12-10 01:15:00
2008-12-10 01:26:23 2008-12-10 01:30:00
Maintenant j'en viens au problème... Si je colle le contenu de ces
variables dans la feuille ça ne fonctionne pas avec la variable
tblVariable2.
Ex:
Range("A20:A22") = tblVariable1, colle le contenu de la variable dans
la feuille
Range("A20:A22") = tblVariable2, ne colle rien, même si le débug.print
démontre que la variable contient les données requises.
Les variables ont été initialement déclarés comme variant... Dim
tblVariable1() As Variant
Dim tblVariable2() As Variant

Merci.
syl.news2
Le #18254491
On 30 déc, 09:22, "michdenis"
Fais ce petit exercice : les valeurs du tableau S que je transfère
au tableau T sont recopiées en G

'------------------------------
Sub test()
Dim T() As Variant, S() As Variant
S = Range("A1:C3") ' évidemment cette plage contient des données
T = S
Range("G1").Resize(UBound(T, 1), UBound(T, 2)) = T
End Sub
'------------------------------

Conclusion, l'explication de ta problématique n'est pas complète
comment transfères-tu tes données d'un tableau à l'autre ?



Ton astuce as fonctionnée!
En utilisant la fonction resize avec 2 colonnes, le contenu de ma
variable tableau se retrouvait dans la deuxième colonne. Par la suite
en inscrivant "Option Base 1", tout est entré dans l'ordre. Il semble
que la ligne de code "tblVariable1() = Selection" ait donné à cette
variable la capacité de se copier dans la première colonne de la
feuille, ce qui était refusé à la variable tblVariable2().
Je te fournit quand même le code qui transfère les données d'un
tableau à l'autre.

ReDim Preserve tblVariable1(Selection.Count, 1)
ReDim Preserve tblVariable2(Selection.Count, 1)
tblVariable1() = Selection
c = 1
For c = 1 To Selection.Count
Select Case Minute(tblVariable1(c, 1))
Case 53 To 59: tblVariable2(c, 1) = Round(tblVariable1(c,
1)) + (Hour(tblVariable1(c, 1)) / 24) + (4 / 96)
Case 0 To 7: tblVariable2(c, 1) = Round(tblVariable1(c,
1)) + (Hour(tblVariable1(c, 1)) / 24) + 0
Case 8 To 22: tblVariable2(c, 1) = Round(tblVariable1(c,
1)) + (Hour(tblVariable1(c, 1)) / 24) + (1 / 96)
Case 23 To 37: tblVariable2(c, 1) = Round(tblVariable1(c,
1)) + (Hour(tblVariable1(c, 1)) / 24) + (2 / 96)
Case 38 To 52: tblVariable2(c, 1) = Round(tblVariable1(c,
1)) + (Hour(tblVariable1(c, 1)) / 24) + (3 / 96)
End Select
Debug.Print tblVariable1(c, 1), tblVariable2(c, 1)
Next c


Merci beaucoup!
Publicité
Poster une réponse
Anonyme