Je programme en vba excel. Je rencontre un problème avec le format de
chiffre. Je divise deux chiffre, et le résultat est très proche de 0
comme 0.000006 par exemple. VBA me le met sous forme de 6.0E-6 alors que
moi je voudrais qu'il me le laisse sous la bonne forme. J'en ai besoin
sous cette forme afin de le transformer et string et le mettre dans une
requete sql.
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
Adrien Gaudel
Je ne connais pas VBA vu que je travail qu'en VB, mais je suppose que les fonction sont le même. Ton nombre doit être dans un format numerique (sans doute float), il te faut donc untiliser une fonction de conversion d'un un autre format (double ou quelque chose du genre) avant d'appliquer la fonction de conversion en chaîne.
"Sophie" a écrit dans le message de news:41027236$0$31399$
Bonjour,
Je programme en vba excel. Je rencontre un problème avec le format de chiffre. Je divise deux chiffre, et le résultat est très proche de 0 comme 0.000006 par exemple. VBA me le met sous forme de 6.0E-6 alors que moi je voudrais qu'il me le laisse sous la bonne forme. J'en ai besoin sous cette forme afin de le transformer et string et le mettre dans une requete sql.
Je ne connais pas VBA vu que je travail qu'en VB, mais je suppose que les
fonction sont le même.
Ton nombre doit être dans un format numerique (sans doute float), il te faut
donc untiliser une fonction de conversion d'un un autre format (double ou
quelque chose du genre) avant d'appliquer la fonction de conversion en
chaîne.
"Sophie" <pcsl928@yahoo.com> a écrit dans le message de
news:41027236$0$31399$636a15ce@news.free.fr...
Bonjour,
Je programme en vba excel. Je rencontre un problème avec le format de
chiffre. Je divise deux chiffre, et le résultat est très proche de 0
comme 0.000006 par exemple. VBA me le met sous forme de 6.0E-6 alors que
moi je voudrais qu'il me le laisse sous la bonne forme. J'en ai besoin
sous cette forme afin de le transformer et string et le mettre dans une
requete sql.
Je ne connais pas VBA vu que je travail qu'en VB, mais je suppose que les fonction sont le même. Ton nombre doit être dans un format numerique (sans doute float), il te faut donc untiliser une fonction de conversion d'un un autre format (double ou quelque chose du genre) avant d'appliquer la fonction de conversion en chaîne.
"Sophie" a écrit dans le message de news:41027236$0$31399$
Bonjour,
Je programme en vba excel. Je rencontre un problème avec le format de chiffre. Je divise deux chiffre, et le résultat est très proche de 0 comme 0.000006 par exemple. VBA me le met sous forme de 6.0E-6 alors que moi je voudrais qu'il me le laisse sous la bonne forme. J'en ai besoin sous cette forme afin de le transformer et string et le mettre dans une requete sql.
Sophie
Adrien Gaudel wrote:
Je ne connais pas VBA vu que je travail qu'en VB, mais je suppose que les fonction sont le même. Ton nombre doit être dans un format numerique (sans doute float), il te faut donc untiliser une fonction de conversion d'un un autre format (double ou quelque chose du genre) avant d'appliquer la fonction de conversion en chaîne.
Ca ne marche pas. Le problème c'est qu'il me sort toujours les chiffres sous le format exponentiel. Je déclare la var en variant, pis j'utilise cdec pour le mettre en decimal, puis cstring pour le transformer en chaine.
Adrien Gaudel wrote:
Je ne connais pas VBA vu que je travail qu'en VB, mais je suppose que les
fonction sont le même.
Ton nombre doit être dans un format numerique (sans doute float), il te faut
donc untiliser une fonction de conversion d'un un autre format (double ou
quelque chose du genre) avant d'appliquer la fonction de conversion en
chaîne.
Ca ne marche pas. Le problème c'est qu'il me sort toujours les chiffres
sous le format exponentiel. Je déclare la var en variant, pis j'utilise
cdec pour le mettre en decimal, puis cstring pour le transformer en chaine.
Je ne connais pas VBA vu que je travail qu'en VB, mais je suppose que les fonction sont le même. Ton nombre doit être dans un format numerique (sans doute float), il te faut donc untiliser une fonction de conversion d'un un autre format (double ou quelque chose du genre) avant d'appliquer la fonction de conversion en chaîne.
Ca ne marche pas. Le problème c'est qu'il me sort toujours les chiffres sous le format exponentiel. Je déclare la var en variant, pis j'utilise cdec pour le mettre en decimal, puis cstring pour le transformer en chaine.
Adrien Gaudel
ça devrait pourtant marcher. Peux-tu nous montrer le bout de code (avec les declaraions de variables) là où tu fais la conversion ?
"Sophie" a écrit dans le message de news:41028316$0$29370$
Adrien Gaudel wrote: > Je ne connais pas VBA vu que je travail qu'en VB, mais je suppose que
les
> fonction sont le même. > Ton nombre doit être dans un format numerique (sans doute float), il te
faut
> donc untiliser une fonction de conversion d'un un autre format (double
ou
> quelque chose du genre) avant d'appliquer la fonction de conversion en > chaîne. >
Ca ne marche pas. Le problème c'est qu'il me sort toujours les chiffres sous le format exponentiel. Je déclare la var en variant, pis j'utilise cdec pour le mettre en decimal, puis cstring pour le transformer en
chaine.
ça devrait pourtant marcher. Peux-tu nous montrer le bout de code (avec les
declaraions de variables) là où tu fais la conversion ?
"Sophie" <pcsl928@yahoo.com> a écrit dans le message de
news:41028316$0$29370$626a14ce@news.free.fr...
Adrien Gaudel wrote:
> Je ne connais pas VBA vu que je travail qu'en VB, mais je suppose que
les
> fonction sont le même.
> Ton nombre doit être dans un format numerique (sans doute float), il te
faut
> donc untiliser une fonction de conversion d'un un autre format (double
ou
> quelque chose du genre) avant d'appliquer la fonction de conversion en
> chaîne.
>
Ca ne marche pas. Le problème c'est qu'il me sort toujours les chiffres
sous le format exponentiel. Je déclare la var en variant, pis j'utilise
cdec pour le mettre en decimal, puis cstring pour le transformer en
ça devrait pourtant marcher. Peux-tu nous montrer le bout de code (avec les declaraions de variables) là où tu fais la conversion ?
"Sophie" a écrit dans le message de news:41028316$0$29370$
Adrien Gaudel wrote: > Je ne connais pas VBA vu que je travail qu'en VB, mais je suppose que
les
> fonction sont le même. > Ton nombre doit être dans un format numerique (sans doute float), il te
faut
> donc untiliser une fonction de conversion d'un un autre format (double
ou
> quelque chose du genre) avant d'appliquer la fonction de conversion en > chaîne. >
Ca ne marche pas. Le problème c'est qu'il me sort toujours les chiffres sous le format exponentiel. Je déclare la var en variant, pis j'utilise cdec pour le mettre en decimal, puis cstring pour le transformer en
chaine.
Hervé
Bonjour Sophie, Peut être avec un petit bricolage ?
Sub FormatNombre() Dim I As Integer Dim Debut As Integer Dim LeFormat As String Dim Nombre As Double
Nombre = 0.0000000006
Debut = InStr(CStr(Nombre), Application.DecimalSeparator) If Debut = 0 Then Exit Sub
LeFormat = "0." For I = Debut + 1 To Len(CStr(Nombre)) LeFormat = LeFormat & "0" Next
[A1] = Nombre [A1].NumberFormat = LeFormat
End Sub
Hervé.
"Sophie" a écrit dans le message de news: 41027236$0$31399$
Bonjour,
Je programme en vba excel. Je rencontre un problème avec le format de chiffre. Je divise deux chiffre, et le résultat est très proche de 0 comme 0.000006 par exemple. VBA me le met sous forme de 6.0E-6 alors que moi je voudrais qu'il me le laisse sous la bonne forme. J'en ai besoin sous cette forme afin de le transformer et string et le mettre dans une requete sql.
Bonjour Sophie,
Peut être avec un petit bricolage ?
Sub FormatNombre()
Dim I As Integer
Dim Debut As Integer
Dim LeFormat As String
Dim Nombre As Double
Nombre = 0.0000000006
Debut = InStr(CStr(Nombre), Application.DecimalSeparator)
If Debut = 0 Then Exit Sub
LeFormat = "0."
For I = Debut + 1 To Len(CStr(Nombre))
LeFormat = LeFormat & "0"
Next
[A1] = Nombre
[A1].NumberFormat = LeFormat
End Sub
Hervé.
"Sophie" <pcsl928@yahoo.com> a écrit dans le message de news:
41027236$0$31399$636a15ce@news.free.fr...
Bonjour,
Je programme en vba excel. Je rencontre un problème avec le format de
chiffre. Je divise deux chiffre, et le résultat est très proche de 0
comme 0.000006 par exemple. VBA me le met sous forme de 6.0E-6 alors que
moi je voudrais qu'il me le laisse sous la bonne forme. J'en ai besoin
sous cette forme afin de le transformer et string et le mettre dans une
requete sql.
Bonjour Sophie, Peut être avec un petit bricolage ?
Sub FormatNombre() Dim I As Integer Dim Debut As Integer Dim LeFormat As String Dim Nombre As Double
Nombre = 0.0000000006
Debut = InStr(CStr(Nombre), Application.DecimalSeparator) If Debut = 0 Then Exit Sub
LeFormat = "0." For I = Debut + 1 To Len(CStr(Nombre)) LeFormat = LeFormat & "0" Next
[A1] = Nombre [A1].NumberFormat = LeFormat
End Sub
Hervé.
"Sophie" a écrit dans le message de news: 41027236$0$31399$
Bonjour,
Je programme en vba excel. Je rencontre un problème avec le format de chiffre. Je divise deux chiffre, et le résultat est très proche de 0 comme 0.000006 par exemple. VBA me le met sous forme de 6.0E-6 alors que moi je voudrais qu'il me le laisse sous la bonne forme. J'en ai besoin sous cette forme afin de le transformer et string et le mettre dans une requete sql.
Zoury
Salut Sophie! :O)
Essai ceci : '*** Dim v
v = 6E-19 Debug.Print FormatNumber(v, 20) '***
Mais tu devras me donner une bonne raison pour utiliser un Variant au lieu d'un Single ou un Double... :O) Le type Variant est le plus lent et le plus gourmant qui soit. Évite le autant que possible (Je ne l'utilise jamais par exemple).
-- Cordialement Yanick Lefebvre - MVP pour Visual Basic http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/ http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/ "Sophie" a écrit dans le message de news:41027236$0$31399$
Bonjour,
Je programme en vba excel. Je rencontre un problème avec le format de chiffre. Je divise deux chiffre, et le résultat est très proche de 0 comme 0.000006 par exemple. VBA me le met sous forme de 6.0E-6 alors que moi je voudrais qu'il me le laisse sous la bonne forme. J'en ai besoin sous cette forme afin de le transformer et string et le mettre dans une requete sql.
Salut Sophie! :O)
Essai ceci :
'***
Dim v
v = 6E-19
Debug.Print FormatNumber(v, 20)
'***
Mais tu devras me donner une bonne raison pour utiliser un Variant au lieu
d'un Single ou un Double... :O)
Le type Variant est le plus lent et le plus gourmant qui soit. Évite le
autant que possible (Je ne l'utilise jamais par exemple).
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
"Sophie" <pcsl928@yahoo.com> a écrit dans le message de
news:41027236$0$31399$636a15ce@news.free.fr...
Bonjour,
Je programme en vba excel. Je rencontre un problème avec le format de
chiffre. Je divise deux chiffre, et le résultat est très proche de 0
comme 0.000006 par exemple. VBA me le met sous forme de 6.0E-6 alors que
moi je voudrais qu'il me le laisse sous la bonne forme. J'en ai besoin
sous cette forme afin de le transformer et string et le mettre dans une
requete sql.
Mais tu devras me donner une bonne raison pour utiliser un Variant au lieu d'un Single ou un Double... :O) Le type Variant est le plus lent et le plus gourmant qui soit. Évite le autant que possible (Je ne l'utilise jamais par exemple).
-- Cordialement Yanick Lefebvre - MVP pour Visual Basic http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/ http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/ "Sophie" a écrit dans le message de news:41027236$0$31399$
Bonjour,
Je programme en vba excel. Je rencontre un problème avec le format de chiffre. Je divise deux chiffre, et le résultat est très proche de 0 comme 0.000006 par exemple. VBA me le met sous forme de 6.0E-6 alors que moi je voudrais qu'il me le laisse sous la bonne forme. J'en ai besoin sous cette forme afin de le transformer et string et le mettre dans une requete sql.
Sophie
Zoury wrote:
Mais tu devras me donner une bonne raison pour utiliser un Variant au lieu d'un Single ou un Double... :O) Le type Variant est le plus lent et le plus gourmant qui soit. Évite le autant que possible (Je ne l'utilise jamais par exemple).
Pour utiliser cdec...
sinon finalement j'ai utilisé tout simplement un format.
Zoury wrote:
Mais tu devras me donner une bonne raison pour utiliser un Variant au lieu
d'un Single ou un Double... :O)
Le type Variant est le plus lent et le plus gourmant qui soit. Évite le
autant que possible (Je ne l'utilise jamais par exemple).
Pour utiliser cdec...
sinon finalement j'ai utilisé tout simplement un format.
Mais tu devras me donner une bonne raison pour utiliser un Variant au lieu d'un Single ou un Double... :O) Le type Variant est le plus lent et le plus gourmant qui soit. Évite le autant que possible (Je ne l'utilise jamais par exemple).
Pour utiliser cdec...
sinon finalement j'ai utilisé tout simplement un format.