Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

4 réponses
Avatar
bpascal123
Bonjour,

J'ai un tableau de 2 dimensions lignes, colonnes d=E9clar=E9 comme string (=
j'ai essay=E9 variant sans succ=E8s) dans un script vba.

Je copie des donn=E9es de type texte et nombre venant d'une feuille de calc=
ul.

Par exemple, il y a 2 colonnes avec des nombres d=E9cimaux.=20

Sur la feuille de calcul, les nombres sont format=E9s pour une colonne (A) =
en nombre d=E9cimal au centi=E8me (2 nombres apr=E8s la virgule) et pour l'=
autre colonne (B), c'est le r=E9sultat d'une formule avec une partie d=E9ci=
mal =E9galement.

Apr=E8s 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=E9es 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

4 réponses

Avatar
DanielCo
Bonjour,
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


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 calcul.

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écimal
également.

Après lecture des deux colonnes dans le tableau, la colonne A dans le tableau
vba ne contient que des entiers (des nombres sans virgules et donc arrondis)
et les données de la colonne B sont identiques (nombre avec virgule).

Comment faire pour copier les nombres de la colonne A sans conversion
implicite vers un nombre entier?

Pascal
Avatar
bpascal123
il y a aussi du texte dans certaines colonnes et alors ça fait une erreur avec un type double, je crois que la pseudo déclaration du tableau est d im Tab(50_Lignes, 4_Colonnes) as string

le code sera en ligne dès que je retourne sur ce doc
Avatar
MichD
Bonjour,

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
'------------------------------------------
Avatar
bpascal123
Je vais essayer le script de MichD, les colonnes du tableau ne sont pas contigues mais je crois que vba permet de faire "l'union" de plusieurs ranges