Conversion chaine en double

amsdiop Messages postés 29 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 2 octobre 2013 - 30 déc. 2008 à 16:05
amsdiop Messages postés 29 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 2 octobre 2013 - 31 déc. 2008 à 02:30
salut mesdames et messieurs les codeurs. je demande de l'aide. quand j'écrit la structure de controle if then :
If




  Val(Salaire_Total_Brut.Text) > 234000.0  


Then


Paiemts_Détails_POURCENTAGE_IPRES.BackColor = Color.Blue








Me

.RETENUE_IPRES.Text = o.Dtt.Rows(i).Item(


"Salaire_RETENUE_IPRES"

)



ElseIf

  Val(Salaire_Total_Brut.Text) < 234000.0  


Then








Me

.Paiemts_Détails_POURCENTAGE_IPRES.Text = Format(o.Dtt.Rows(i).Item(


"Salaire_POURCENTAGE_IPRES"

))





Me

.RETENUE_IPRES.Text =


CStr

(


CDbl

(Paiemts_D‚tails_POURCENTAGE_IPRES.Text) * (


CDbl

(Paiemts_D‚tails_SALAIRE_BASE.Text) +


CDbl

(Paiemts_D‚tails_POURCENTAGE_IPRES.Text) *


CDbl

(PrimesAnciennet‚.Text)))



End





If





et que je demarre de débogage, vb 2008 me dit il y a une erreur de conversion:La conversion de la chaîne "Salaire_Total_Brut" en type 'Double' n'est pas valide. pouvez vous m'aider, je suis coincé par cette erreures depuis une semaine. S'il vous plait. Merci d'avance.

7 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
30 déc. 2008 à 18:08
salut,

tu es en VB.NET?
pourquoi utilises-tu les fonctions héritées de VB6...

décoche la compatibilité, tu verras que tout le code est faux ici

tu veux du double, ce n'est pas
If Val(Salaire_Total_Brut.Text) > 234000.0 Then
mais
If convert.todouble(Salaire_Total_Brut.Text) > 234000# Then

de la même manière en décochant dans la référence tu verras le reste qui cloche
bon courage ++

<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
0
amsdiop Messages postés 29 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 2 octobre 2013
30 déc. 2008 à 18:37
merci. je vais tester ta réponse. tu viens souvent à mon secours. Merci. à Bientot
0
amsdiop Messages postés 29 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 2 octobre 2013
31 déc. 2008 à 00:36
Monsieur PCPT, que pensez vous de ces conversions. je ne sens perdu. Vb9 me dit tjours que les conversions sont invalides ou la chaine de conversion est invalide. Je ne vois pas ou le bas blésse. Merci de vos remarques pertinantes:
Salaire_Suppl.Text =

CStr((
CDbl(
Me.Paiemts_D‚tails_SALAIRE_BASE.Text)) / 173.33 * (
CDbl(
Me.Paiemts_Détails_Heures_Suppl.Text)) * 1.15)
'o.Dtt.Rows(i).Item("Paiemts_Détails_Salaire_Suppl")

'[Paiements_Détails].[Paiemts_Détails_SALAIRE BASE]/173.33*[Paiements_Détails].[Paiemts_Détails_Heures_Suppl]*1.15 AS [Salaire Suppl],

'-------------------------------------------------

Me.Paiemts_Détails_Primes_Transport.Text = o.Dtt.Rows(i).Item(
"Salaire_Primes_Transport")

'----------------------

Me.Paiemts_D‚tails_Absence_Heure.Text = o.Dtt.Rows(i).Item(
"Paiemts_D‚tails_Absence_Heure")

'Dim Ah As Double = CDbl(Paiemts_D‚tails_Absence_Heure.Text)

'--------------------------------------------------------------------Absence.Text =

CStr((-
CDbl(
Me.Paiemts_D‚tails_SALAIRE_BASE.Text)) / 160 * (
CDbl(
Me.Paiemts_D‚tails_Absence_Heure.Text)))
'o.Dtt.Rows(i).Item("Paiemts_D‚tails_Absence")

'Dim Abs As Double = CDbl(Absence.Text)

'Absence: -[Paiemts_D‚tails_SALAIRE_BASE]/160*[Paiemts_D‚tails_Absence_Heure]SousTotal.Text =

CStr(
CDbl(
Me.Paiemts_D‚tails_SALAIRE_BASE.Text) +
CDbl(Salaire_Suppl.Text) +
CDbl(
Me.Paiemts_D‚tails_Primes_Transport.Text) +
CDbl(Absence.Text))SousTotal.Text =

CStr(
CInt(SousTotal.Text))

'--------------------------------------------------------------------Anciennet‚.Text =

CStr(
CInt(DateDiff(DateInterval.Month, Salaire_Date_Embauche.Value, Paiemt_Date.Value) / 12))

'---------------------------------------------------------------------PrimesAnciennet‚.Text =

CStr((
CDbl(
Me.Paiemts_D‚tails_SALAIRE_BASE.Text) *
CInt(Anciennet‚.Text)) * 0.01)PrimesAnciennet‚.Text =

CStr(
CInt(PrimesAnciennet‚.Text))

'---------------------------------------------------------------------

Me.Paiemts_D‚tails_Primes_Rendement.Text = o.Dtt.Rows(i).Item(
"Salaire_Primes_Rendmt")

Me.Paiemts_D‚tails_Sursalaire.Text = o.Dtt.Rows(i).Item(
"Salaire_Sursalaire")

Me.Paiemts_D‚tails_Primes_Diverses.Text = o.Dtt.Rows(i).Item(
"Salaire_Primes_Diverses")Salaire_Total_Brut.Text =

CStr(
CDbl(SousTotal.Text) +
CDbl(PrimesAnciennet‚.Text) +
CDbl(Paiemts_D‚tails_Primes_Rendement.Text) +
CDbl(Paiemts_D‚tails_Sursalaire.Text) +
CDbl(Paiemts_D‚tails_Primes_Diverses.Text))Salaire_Total_Brut.Text =

CStr(
CInt(Salaire_Total_Brut.Text))

'-------------------------------------------

If Paiemts_D‚tails_Remarques.Text =
String.Empty
Then

Me.Paiemts_D‚tails_Remarques.Text =
"ras"
'Convert.ToString("")

ElseIf
Me.Paiemts_D‚tails_Remarques.Text <>
String.Empty
Then

Me.Paiemts_D‚tails_Remarques.Text = o.Dtt.Rows(i).Item(
"Paiemts_D‚tails_Remarques")

End
If

'-----------------------------------------

If Convert.ToDouble(Salaire_Total_Brut.Text) > 234000.0#
Then
'Val(Salaire_Total_Brut.Text) > 234000 ThenPaiemts_D‚tails_POURCENTAGE_IPRES.BackColor = Color.Blue
Paiemts_D‚tails_POURCENTAGE_IPRES.Text "0.00"RETENUE_IPRES.Text o.Dtt.Rows(i).Item(

"Salaire_RETENUE_IPRES")

ElseIf Convert.ToDouble(Salaire_Total_Brut.Text) > 234000.0#
ThenPaiemts_D‚tails_POURCENTAGE_IPRES.Text = Format(o.Dtt.Rows(i).Item(

"Salaire_POURCENTAGE_IPRES"))
', "#.#%"RETENUE_IPRES.Text =

CStr(
CDbl(Paiemts_D‚tails_POURCENTAGE_IPRES.Text) * (
CDbl(Paiemts_D‚tails_SALAIRE_BASE.Text) +
CDbl(Paiemts_D‚tails_POURCENTAGE_IPRES.Text) *
CDbl(PrimesAnciennet‚.Text)))RETENUE_IPRES.Text =

CStr(
CInt(RETENUE_IPRES.Text))

End
If

'-----------------------------------------------------

Me.Paiemts_D‚tails_RETENUE_IRPP.Text = o.Dtt.Rows(i).Item(
"Salaire_RETENUE_IRPP")

Me.Paiemts_D‚tails_RETENUE_Trimf.Text = o.Dtt.Rows(i).Item(
"Salaire_RETENUE_Trimf")

Me.Paiemts_D‚tails_RETENUE_TC.Text = o.Dtt.Rows(i).Item(
"Salaire_RETENUE_IGR_TC")

Me.Paiemts_D‚tails_RETENUE_Mutuelle.Text = o.Dtt.Rows(i).Item(
"Salaire_RETENUE_Mutuelle")

Me.Paiemts_D‚tails_RETENUE_Avance.Text = o.Dtt.Rows(i).Item(
"Salaire_RETENUE_Avance")

Me.RETENUES_TOTALES.Text =
CStr(
CDbl(RETENUE_IPRES.Text) +
CDbl(Paiemts_D‚tails_RETENUE_IRPP.Text) +
CDbl(Paiemts_D‚tails_RETENUE_Trimf.Text) +
CDbl(Paiemts_D‚tails_RETENUE_TC.Text) +
CDbl(Paiemts_D‚tails_RETENUE_Mutuelle.Text) +
CDbl(Paiemts_D‚tails_RETENUE_Avance.Text))RETENUES_TOTALES.Text =

CStr(
CInt(RETENUES_TOTALES.Text))Salaire_Net.Text =

CStr(
CInt(Salaire_Total_Brut.Text) -
CInt(RETENUES_TOTALES.Text))
0
amsdiop Messages postés 29 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 2 octobre 2013
31 déc. 2008 à 02:00
Rebonjour monsieur PCPT
je crois savoir que le probleme reside dans ceci:

Private
Sub SousTotal_TextChanged(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles SousTotal.TextChanged , _ Paiemts_Détails_SALAIRE_BASE.TextChanged, Salaire_Suppl.TextChanged, Paiemts_Détails_Primes_Transport.TextChanged, Absence.TextChanged

Try
SousTotal.Text =
CStr(
CInt(Paiemts_Détails_SALAIRE_BASE.Text) +
CInt(Salaire_Suppl.Text) +
CInt(Paiemts_Détails_Primes_Transport.Text) +
CInt(Absence.Text))

Catch ex
As Exception
MsgBox(ex.Message, ,
"sstotal_textchanged")

End
Try
End
Sub
c'est avec ce code que les msges d'erreurs apparaissent :
-la conversion de "" n'est pas valide en integer
-la conversion de Paiemts_Détails_SALAIRE_BASE pas valide etc...
merci d'avance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
31 déc. 2008 à 02:05
salut,

il devrait te dire en premier lieu que CSTR n'existe pas
commence par faire dans l'ordre en suivant ma première remarque :
"


décoche la compatibilité, tu verras que tout le code est faux ici


"
sinon çà va devenir du bricolage pourne pas avoir un message d'erreur sur un code faux dès le départ...

à moins que le projet soit assez volumineux et là t'es bon pour passer une paire d'heures à modifier ce qui va découler du décochage

++

<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
31 déc. 2008 à 02:08
en effet si tes zones sont vides çà va pas être évident d'ajouter leur valeur....

réparation "à l'arrache" pas propre :
remplace CINT par VAL

mais je te conseille de faire ce que j'ai indiqué au dessus, et d'apprendre comme çà
++

<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
0
amsdiop Messages postés 29 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 2 octobre 2013
31 déc. 2008 à 02:30
Salut,
j'ai décrocher l'importation du vb6, et c'est vrai que je dois tout recommencer et corriger des bouts de codes. je suis en plein dans vb8. finis les leurs et je vais surement mourir avant de renaitre de mes cendres. Merci. je vous tiendrais au cours. Cstr= conversion en string existe. Je vous tire mon chapeau. Vous etes fort et bon. merci. A bientot. et A demain.
0
Rejoignez-nous