Additionner les Nombres contenus dans chaque ligne d'une Textbox

Résolu
Dri60
Messages postés
68
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
17 novembre 2008
- 21 mars 2008 à 21:10
cs_Galain
Messages postés
1263
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 juillet 2013
- 23 mars 2008 à 23:10
Bonjour, j'ai une RichTextbox qui contient ceci :

Article1    1.23 ?
Article2    5.84 ?
Article122    4.25 ?
...

Le nombre d'Articles peut varier. Je souhaiterais additionner les Prix de chacune des lignes pour obtenir un Résultat. Je pensai supprimer ce qu'il y avant et après chaque nombre mais la longeur du Nom de l'Article peut varier et le nombre de lignes aussi. Comment faut-il faire ? Merci.
En attendant je continue à chercher

 Dri60

10 réponses

cs_Galain
Messages postés
1263
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 juillet 2013
7
22 mars 2008 à 13:28
Salut Dri60

soit chn = "Article1    1.23 ?"  ( c'est une String qui contient ta première ligne)

Dim valeur as String  ' valeur chaine en euros
dim prix as Decimal  ' le prix

' on récupère valeur à partir du 1° espace et on supprime les espaces à gauche
valeur = chn.substring(chn.indexof(" ")).trimstart
' on enléve l'espace à droite et le signe ?
valeur = chn.substring(0,chn.length -2)
' on convertit en decimal pour récupérer le prix
prix = Convert.ToDec(chn)

GRENIER Alain
3
cs_Galain
Messages postés
1263
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 juillet 2013
7
22 mars 2008 à 23:21
Tu initialises le prix total à 0 et tu fais une boucle pour chaque ligne de ta RichTextbox où tu ajoutes le prix de l'article

total =0
For i = 1 to nombre de ligne
    total = total + prix de l'article
Next i

GRENIER Alain
3
cs_Galain
Messages postés
1263
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 juillet 2013
7
23 mars 2008 à 21:17
Sub Calcul_Total()   Dim Total AsDecimal

   Dim i as quoi ?

   Dim Prix as quoi ?

   Dim Nb_Ligne AsInteger

   Total = 0

   Nb_Ligne = RichTextBox1.GetLineFromCharIndex(0) - 4 ' doit donner le nombre de lignes de ta RichtextBox ( à vérifier)

   For i = 1 To Nb_Ligne

     ' ici il faut récupérer la ligne et en extraire le prix de l'article ( voir mon premier post)

     Total = Total + Prix   Next i
   RichTextBox1.Text RichTextBox1.Text & vbCrLf & "Total " & Total & " ?" & vbCrLf & "Merci de votre Visite"

EndSub

GRENIER Alain
3
Dri60
Messages postés
68
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
17 novembre 2008

22 mars 2008 à 23:00
Merci de ta réponse, mais pour ensuite qu'il retienne tout les prix puis qu'il les additionnes, comment faut-il faire ?

 Dri60
0

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

Posez votre question
Dri60
Messages postés
68
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
17 novembre 2008

22 mars 2008 à 23:24
Ok merci

 Dri60
0
Dri60
Messages postés
68
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
17 novembre 2008

23 mars 2008 à 19:21
Euh je crois que j'ai un problème. Voici le Code :
Public

Sub Calcul_Total()   Dim Total AsDecimal

   Dim i

   Dim Prix

   Dim Nb_Ligne AsInteger

   Total = 0

   Nb_Ligne = RichTextBox1.GetLineFromCharIndex(0) - 4

   For i = 1 To Nb_Ligne

      Total = Total + Prix

   Next i
   RichTextBox1.Text RichTextBox1.Text & vbCrLf & "Total " & Total & " ?" & vbCrLf & "Merci de votre Visite"

EndSub

Et quand j'exécute, il me met comme résultat 0. J'ai du me tromper  Comment fait-on ? Merci

 Dri60
0
Dri60
Messages postés
68
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
17 novembre 2008

23 mars 2008 à 22:09
J'ai trouvé, l'erreur vient de Nb_Ligne = RichTextBox1.GetLineFromCharIndex(0) le nombre retourné est toujours 0. Merci de ton aide.

 Dri60
0
Dri60
Messages postés
68
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
17 novembre 2008

23 mars 2008 à 22:32
En fait je crois que l'erreur vient de la Richtextbox. Même en mettant un autre code, sa donne toujours 0. Voici le Code :
Public

Sub Calcul_Total()   Dim Total AsDecimal

   Dim i AsDecimal

   Dim Prix AsDecimal

   Dim Nb_Ligne AsInteger

   Prix = Lbl_Prix.Text

   Total = 0

   Dim i2 AsInteger

   For i2 = 1 To Len(RichTextBox1.Text)
   If Mid(RichTextBox1.Text, i2, 1) vbCr Then Nb_Ligne Nb_Ligne + 1

   Next i2

   MsgBox(Nb_Ligne)

   Label_Test.Text = Nb_Ligne

   For i = 1 To Nb_Ligne

   Total = Total + Prix

   Next i
   RichTextBox1.Text RichTextBox1.Text & vbCrLf & "Total " & Total & " ?" & vbCrLf & "Merci de votre Visite"

EndSub

 Dri60
0
cs_Galain
Messages postés
1263
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 juillet 2013
7
23 mars 2008 à 23:09
Sub Calcul_Total()   Dim Total AsDecimal

   Dim i AsDecimal

   Dim Prix AsDecimal

   Dim Nb_Ligne AsInteger

   Prix =Lbl_Prix

   Total = 0

   Dim i2 AsInteger

   For i2 = 1 To Len(RichTextBox1.Text)
   If Mid(RichTextBox1.Text, i2, 1) vbCrLF  Then Nb_Ligne Nb_Ligne + 1

   Next i2

   MsgBox(Nb_Ligne) ' vérifie si le nombre de lignes est correct

   Label_Test.Text = Nb_Ligne

   For i = 1 To Nb_Ligne

            ' Récupère la ligne n° i et extrait le prix ( voir 1° post)
   Total = Total + Prix

   Next i
   RichTextBox1.Text RichTextBox1.Text & vbCrLf & "Total " & Total & " ?" & vbCrLf & "Merci de votre Visite"

EndSub

GRENIER Alain
0
cs_Galain
Messages postés
1263
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 juillet 2013
7
23 mars 2008 à 23:10
Utilise la fonction Split pour créer ton tableau contenant les lignes

GRENIER Alain
0