vba tableau de type string mais les nombres de certaines colonnes sont copiés sans les décimales
4 réponses
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?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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?
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
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
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
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
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 '------------------------------------------
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
'------------------------------------------
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 '------------------------------------------
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
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