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:

Messages recommandés

Posté(e)

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

Posté(e)
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

Posté(e)

Ça fonctionne avec le point comme séparateur, mais pas avec la virgule.

Dans les paramètres linguistiques, j'ai coché la case «séparateurs de décimales identique à l'environnement linguistique» qui n'existait pas en version 1 de OOo, justement pour avoir la virgule avec le pavé numérique. :P

Posté(e)
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.

Posté(e)
: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.

Posté(e)

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.

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