Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Séparateur décimal avec Ooo Basic


gibé

Messages recommandés

J'ai quelques soucis avec la gestion de la virgule dans mes macros sous Ooo 1.1 ou 2.0Béta.

J'arrive parfois a récupérer la partie décimale d'un nombre mais pas toujours ! :P

Dans la macro ci-dessous, aucun des trois cas ne fonctionnent.

Si quelqu'un a une idée. :P

 

Sub Test
Dim Chaine as String
Dim Valeur as Double
' cas 1
Chaine = inputbox( "Entrez une valeur : ")
Valeur = CDbl(Chaine)
msgbox ("1: Chaine = " + Chaine + "      Valeur = " + CStr(Valeur))

' cas 2
Chaine = "12.34"
Valeur = CDbl(Chaine)
msgbox ("2: Chaine = " + Chaine + "      Valeur = " + CStr(Valeur))

' cas 3
Chaine = "12,34"
Valeur = CDbl(Chaine)
msgbox ("3: Chaine = " + Chaine + "      Valeur = " + CStr(Valeur))

End Sub

Lien vers le commentaire
Partager sur d’autres sites

Sub Test
Dim Chaine as String
Dim Valeur as Double
' cas 1
Chaine = inputbox( "Entrez une valeur : ")
Valeur = CDbl(Val(Chaine))
msgbox ("1: Chaine = " + Chaine + "      Valeur = " + CStr(Valeur))

' cas 2
Chaine = "12.34"
Valeur = CDbl(Val(Chaine))
msgbox ("2: Chaine = " + Chaine + "      Valeur = " + CStr(Valeur))

' cas 3
Chaine = "12,34"
Valeur = CDbl(Chaine)
msgbox ("3: Chaine = " + Chaine + "      Valeur = " + CStr(Valeur))

End Sub

Sub Main
call test()
End Sub

Lien vers le commentaire
Partager sur d’autres sites

A mon avis, ce qu'il fallait surtout voir c'est le Val(Chaine) qui est apparu là où tu cherchais à récupérer le CDbl d'une chaine...

542614[/snapback]

 

:P

 

gibé>Ooo ne prend comme séparateur numérique QUE la virgule, même si tu changes ca dans les options de windows.

Ca sera corrigé dans la version 2.0.

Lien vers le commentaire
Partager sur d’autres sites

:P

 

gibé>Ooo ne prend comme séparateur numérique QUE la virgule, même si tu changes ca dans les options de windows.

Ca sera corrigé dans la version 2.0.

542636[/snapback]

Tu veux dire que le point ? (au fait, c'est sous Linux)

C'est pas trop grave, je vais remplacer, la virgule par un point avant de convertir en attendant la v2,0 définitive.

Deux choses que j'ai pas comprises :

- pourquoi ma macro fonctionnait parfois notamment à la première exécution, juste après l'avoir écrite.

- pourquoi l'utilisation de Val est nécessaire alors que l'aide de Cdbl dit qu'il convertit directement de chaîne à double ?

"Convertit une expression au format chaîne de caractères ou numérique en valeur de type Double"

 

Merci pour les réponses et promis, j'oublierai plus mes lunettes.

Lien vers le commentaire
Partager sur d’autres sites

1 - Les mystères du VB(A) sont impénétrables :P

2 - J'ai fait beaucoup de VB et CDbl() et assimilés servent à transtyper (typer un integer vers un double) et non à convertir une chaine vers une variable du type double.

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...