vba tableau de type string mais les nombres de certaines colonnes sont copiés sans les décimales
Le
bpascal123

Bonjour,
J'ai un tableau de 2 dimensions lignes, colonnes déclaré comme string (=
j'ai essayé variant sans succès) dans un script vba.
Je copie des données de type texte et nombre venant d'une feuille de calc=
ul.
Par exemple, il y a 2 colonnes avec des nombres décimaux.
Sur la feuille de calcul, les nombres sont formatés pour une colonne (A) =
en nombre décimal au centième (2 nombres après la virgule) et pour l'=
autre colonne (B), c'est le résultat d'une formule avec une partie déci=
mal également.
Après lecture des deux colonnes dans le tableau, la colonne A dans le tab=
leau vba ne contient que des entiers (des nombres sans virgules et donc arr=
ondis) et les données de la colonne B sont identiques (nombre avec virgul=
e).
Comment faire pour copier les nombres de la colonne A sans conversion impli=
cite vers un nombre entier?
Pascal
J'ai un tableau de 2 dimensions lignes, colonnes déclaré comme string (=
j'ai essayé variant sans succès) dans un script vba.
Je copie des données de type texte et nombre venant d'une feuille de calc=
ul.
Par exemple, il y a 2 colonnes avec des nombres décimaux.
Sur la feuille de calcul, les nombres sont formatés pour une colonne (A) =
en nombre décimal au centième (2 nombres après la virgule) et pour l'=
autre colonne (B), c'est le résultat d'une formule avec une partie déci=
mal également.
Après lecture des deux colonnes dans le tableau, la colonne A dans le tab=
leau vba ne contient que des entiers (des nombres sans virgules et donc arr=
ondis) et les données de la colonne B sont identiques (nombre avec virgul=
e).
Comment faire pour copier les nombres de la colonne A sans conversion impli=
cite vers un nombre entier?
Pascal
Pourquoi ne pas déclarer ton tableau entant que "Double" ?
Par ailleurs, sans le code qui remplit le tableau, il est difficile de
trouver l'erreur.
Cordialement.
Daniel
le code sera en ligne dès que je retourne sur ce doc
Une manière rapide d'affecter à une variable dans Excel, tout un tableau de
données peu importe le type.
Cela convient à toutes les versions d'Excel.
'------------------------------------------
Sub test()
Dim T As Variant, A As Long
Dim B As Long, X As Variant
With Worksheets("Feuil1")
T = .Range("A1:G25")
End With
'Pour boucler sur les éléments du tableau
For A = 1 To UBound(T, 1)
For B = 1 To UBound(T, 2)
X = T(A, B)
Next
Next
'Et si tu veux retourner ce tableau dans une feuille de calcul
With Worksheets("Feuil2")
.Range("A1").Resize(UBound(T, 1), UBound(T, 2)) = T
End With
End Sub
'------------------------------------------