Se connecter / S'enregistrer
Votre question

comment programmer un petit logiciel simple

Tags :
  • Visual studio
  • Programmation
  • VB
Dernière réponse : dans Programmation
20 Février 2012 13:08:12

Bonjour,

Je voudrais programmer un petit logiciel simple pour faire des calculs simple type ratio pour avoir des prix au m², ml etc c'est des multiplication division etc.. avec des valeurs à rentrer et des cases a cocher si possible...
Actuellement j'utilise un tableau excel qui est assez complexe, pas graphique du tout, source d'erreur et que seul celui qui l'a conçu peut utiliser pas terrible donc.
Je saurais le faire sur un calculatrice type casio avec les fonction if, then... etc
Comment faire pour avoir un petit truc sympa sous windows?

Autres pages sur : programmer petit logiciel simple

a c 232 L Programmation
20 Février 2012 19:14:47

Salut,

Tu as le Visual Basic qui reprend pas mal les notations du langage Basic (calculette casio). Avec Visual Studio Express, tu dois pouvoir faire un design rapidement en posant des éléments (textbox, boutons...), et faire les calculs assez facilement.
a b L Programmation
21 Février 2012 03:45:38

En c# WindowsForms
Contenus similaires
21 Février 2012 11:31:05

Bonjour,

Je viens d'essayer visual basic express et en effet, c'est ce que je recherche.

J'ai donc créé la partie graphique du programme avec des textbox, des checkbox et des label.

Maintenant, il faut que je code tout ça... aie aie aie..

c'est juste pour faire des opérations simple.

Exemple

Dans la textebox 1 je rentre 100
dans le textbox 2 je rentre 0.20 mais quand je rentre le 0.2, je veux qu'il y ai un calcul du type 0.2*10=2
après je veux faire textebox 1Xtextbox2 soit 100*2 = 200

Voila en gros ce que je veux faire avec plus de champ à remplir et les checkbox c'est pour par exemple faire varier le 10 en 20 dans une formule.

Merci
a c 232 L Programmation
21 Février 2012 11:51:17

Il faut gérer ça avec des évènements.
Tes textbox ont un évènement TextChanged, les checkbox ont un évènement CheckedChanged, qui te permettent de savoir quand leurs valeurs changent.

Dans ton design, clique sur ta textbox/checkbox et ouvre la fenêtre "Properties" (que tu dois pouvoir accéder via la touche F4 si tu ne la vois pas), tu as différents boutons (normalement 5, dont le deuxième est le tri A-Z, le quatrième est un éclair).
Tu dois avoir le 3ème d'activé, et qui te liste toutes les propriétés de l'élément sélectionné. Si tu cliques sur l'éclair, tu vas avoir tous les évènements de l'élément. Il te suffit de trouver les évènements que je t'ai cité plus haut, et de double cliquer sur la valeur.
Ca va automatiquement te créer une méthode qui va s'attacher à cet évènement.

Il te suffira de rentrer le texte.

Pour accéder à la valeur de ta textbox, il faut appeler nomTextBox.Text, exemple textBox1.Text. Ca te retourne une chaine de caractère qu'il faut convertir en entier pour pouvoir faire des calculs dessus.

Pour savoir si ta checkbox est cochée, il faut appeler nomCheckBox.Checked, exemple checkBox1.Checked. Ca te retourne un booleén (true/false = vrai/faux).
21 Février 2012 13:50:33

Salut omaR,

Je pense que j'ai en "en gros compris"

Maintenant j'ai deux petites questions

Si je veux faire la valeur de textbox6 X textbox1 = textbox 15 que dois-je taper?

et si je veux que la textbox1 ne prenne pas la valeur entrée mais la valeur calculée sans la voire je tape quoi?

explication avec des chiffres:

Textbox6 je rentre 100
textbox1 je rentre 0.5 mais derrière il y a un calcul du type 0.5*12=6
textbox15 = textbox6 X resultat de textbox1 = 100X6 =600

Si j'arrive à comprendre et a réaliser ce schéma simple, je pense que je peux faire le prog complet qui n'est basé que sur ce type de calcul.

Merci
a c 232 L Programmation
21 Février 2012 13:54:43

Tu veux entrer des valeurs dans d'autres textbox en suivant un calcul d'autre valeurs ?

Ca serait quelque chose comme ça :
  1. textBox15.Text = CDbl(textBox6.Text) * CDbl(textBox1.Text) * 12


Ou si tu as le résultat de CDbl(textBox1.Text) * 12 quelque part, tu peux l'utiliser à la place.
21 Février 2012 14:37:35

Oui c'est tout à fait ça.

J'ai essayer mais cela ne marche pas.
faut-il mettre un bouton calculer? (d'ailleur je pense que c'est serait pas mal d'avoir le résultat quand on click sur un bouton calculer non?)

  1. Public Class Form1
  2.  
  3. Private Sub Label5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label5.Click
  4.  
  5. End Sub
  6.  
  7. Private Sub Label7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label7.Click
  8.  
  9. End Sub
  10.  
  11. Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged
  12.  
  13. End Sub
  14.  
  15. Private Sub Label8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label8.Click
  16.  
  17. End Sub
  18.  
  19. Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
  20.  
  21. End Sub
  22.  
  23. Private Sub CheckBox6_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox6.CheckedChanged
  24.  
  25. End Sub
  26.  
  27. Private Sub TabPage1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabPage1.Click
  28.  
  29. End Sub
  30.  
  31. Private Sub Label10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label10.Click
  32.  
  33. End Sub
  34.  
  35. Private Sub TextBox6_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox6.TextChanged
  36.  
  37. End Sub
  38.  
  39. Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
  40.  
  41. End Sub
  42.  
  43. Private Sub TextBox12_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox12.TextChanged
  44.  
  45. End Sub
  46.  
  47. Private Sub TextBox15_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox15.TextChanged
  48. TextBox15.Text = CDbl(TextBox6.Text) * CDbl(TextBox1.Text) * 12
  49. End Sub
  50. End Class



Merci
a c 232 L Programmation
21 Février 2012 14:51:42

En fait, le soucis, c'est que tu as mis ça dans l'évènement TextBox15.TextChanged
C'est à dire, que ça s'exécute lorsque la valeur de TextBox15 est modifiée... ce qui n'arrive pas en fait. Toi tu veux que ce soit fait lorsque TextBox6 ou TextBox1 sont modifiés.


Généralement, on met plutôt un bouton oui, mais tu peux vouloir le faire en live.

Si tu ajoutes un bouton, il faut s'attacher à son évènement Click, et exécuter le code.
Et du coup, tu peux supprimer tous les évènements TextChanged auxquels tu t'es abonné (par contre, faut passer par le designer et supprimer le nom de la fonction, sinon si tu supprimes juste la fonction, ça va pas tout supprimer correctement et tu auras une erreur lorsque tu voudras compiler)


Une autre solution serait de faire une seule fonction, et de l'appeler dès qu'il y a un changement. Mais si un bouton te va bien, fais ça comme ça.
21 Février 2012 15:43:51

Ok,

J'ai donc créé un bouton calcul.
J'ai rentré ça: TextBox15.Text = CDbl(TextBox6.Text) * CDbl(TextBox1.Text) * 12
je test et la il me dit: Une exception de première chance de type 'System.InvalidCastException' s'est produite dans Microsoft.VisualBasic.dll
il me souligne le 12 en rouge??

Et comment faire pour que le résultat du calcul lorsque je click sur calcul apparaisse dans textbox15
un commande = button1 fonctionne?

Merci

a c 232 L Programmation
21 Février 2012 16:32:08

En effet, CDbl ça a l'air d'être pour convertir un entier en double, alors qu'on veut convertir un string en double.
Essaie avec :
  1. TextBox15.Text = Convert.ToDouble(TextBox6.Text, CultureInfo.InvariantCulture) * Convert.ToDouble(TextBox1.Text, CultureInfo.InvariantCulture) * 12


Faudra certainement ajouter le namespace de CultureInfo (System.Globalization.CultureInfo)
21 Février 2012 16:49:19

Re,

Je ne sais pas trop comment ajouter le namespace de cultureinfo. je le met ou?

Merci
a c 232 L Programmation
21 Février 2012 16:56:48

Au début du fichier, tu dois avoir des import
tu ajoutes un
  1. import System.Globalization
21 Février 2012 17:26:58

Re, c'est assez compliqué, mais je vais y arrivé...
il me met déclaration attendue?

J'ai :

Public Class Form1


import System.Globalization.CultureInfo

Private Sub Label5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label5.Click

End Sub

Private Sub Label7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label7.Click

End Sub

Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged

End Sub

Private Sub Label8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label8.Click

End Sub

Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click

End Sub

Private Sub CheckBox6_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox6.CheckedChanged

End Sub

Private Sub TabPage1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabPage1.Click

End Sub

Private Sub Label10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label10.Click

End Sub

Private Sub TextBox6_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)

End Sub

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)

End Sub

Private Sub TextBox12_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox12.TextChanged

End Sub

Private Sub TextBox15_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)

End Sub

Private Sub TextBox15_TextChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox15.TextChanged

End Sub

Private Sub TextBox13_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox13.TextChanged

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox15.Text = Convert.ToDouble(TextBox6.Text, CultureInfo.InvariantCulture) * Convert.ToDouble(TextBox1.Text, CultureInfo.InvariantCulture) * 12
End Sub
End Class

Merci
a c 232 L Programmation
21 Février 2012 17:37:45

C'est en dehors de la classe qu'il faut le déclarer normalement...
T'as rien d'autre au dessus de Public Class Form1 ??

Edit: et faut pas mettre le CultureInfo dans l'import
21 Février 2012 17:41:31

Non rien

j'ai bien ça dans comvisibleattribute.vb entre my project et form1.VB


NotInheritable Class ComVisibleAttribute
Inherits Attribute

Private _p1 As Boolean

Sub New(ByVal p1 As Boolean)
' TODO: Complete member initialization
_p1 = p1
End Sub

End Class
a c 232 L Programmation
21 Février 2012 19:19:52

Sinon à la place de l'import, tu peux mettre directement le nom entier.

  1. TextBox15.Text = Convert.ToDouble(TextBox6.Text, System.Globalization.CultureInfo.InvariantCulture) * Convert.ToDouble(TextBox1.Text, System.Globalization.CultureInfo.InvariantCulture) * 12

22 Février 2012 17:35:44

Salut,

C'est bon le dernier code que tu me donne marche, c'est un peu plus long mais je vais faire avec pour commencer.

J'ai une autre question, au lieu de rentrer le *12 dans le code, je voudrais qu'il soit dans une textbox par défaut (exemple textbox16) et qu'à l'ouverture du programme, le 12 soit déja dans la textbox mais que je puisse mettre 14 si je le veux.

Est-ce possible?

Merci
a c 232 L Programmation
22 Février 2012 17:44:57

Bah dans ce cas, tu remplaces le * 12 par * Convert.ToDouble(TextBox16.Text, ...)

Et dans le designer, tu peux directement entrer le texte par défaut dans la textbox.
22 Février 2012 18:05:38

alors dans le code visibleattribute, je rentre:

Private Sub UserForm_Initialize()
TextBox16 = 12
End Sub

Mais il me dit que textbox16 n'est pas déclaré?

comment faire?
a c 232 L Programmation
22 Février 2012 18:52:59

Ca serait TextBox16.Text = "12"
mais tu peux le rentrer directement dans l'interface
23 Février 2012 09:06:43

Bonjour,

Je viens d'essayer de faire une petite chaine mais cela ne marche pas.
J'ai rajouté des parenthèses avant et après mais cela ne marche pas non plus.

  1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2. TextBox15.Text = (Convert.ToDouble(TextBox22.Text, System.Globalization.CultureInfo.InvariantCulture) * Convert.ToDouble(TextBox24.Text, System.Globalization.CultureInfo.InvariantCulture)) + (Convert.ToDouble(TextBox1.Text, System.Globalization.CultureInfo.InvariantCulture) * Convert.ToDouble(TextBox12.Text, System.Globalization.CultureInfo.InvariantCulture)) + (Convert.ToDouble(TextBox2.Text, System.Globalization.CultureInfo.InvariantCulture) * Convert.ToDouble(TextBox17.Text, System.Globalization.CultureInfo.InvariantCulture)) + (Convert.ToDouble(TextBox3.Text, System.Globalization.CultureInfo.InvariantCulture) * Convert.ToDouble(TextBox18.Text, System.Globalization.CultureInfo.InvariantCulture)) + (Convert.ToDouble(TextBox4.Text, System.Globalization.CultureInfo.InvariantCulture) * Convert.ToDouble(TextBox19.Text, System.Globalization.CultureInfo.InvariantCulture)) + (Convert.ToDouble(TextBox5.Text, System.Globalization.CultureInfo.InvariantCulture) * Convert.ToDouble(TextBox20.Text, System.Globalization.CultureInfo.InvariantCulture)) + (Convert.ToDouble(TextBox7.Text, System.Globalization.CultureInfo.InvariantCulture) * Convert.ToDouble(TextBox21.Text, System.Globalization.CultureInfo.InvariantCulture))
  3.  
  4. End Sub


Merci
a c 232 L Programmation
23 Février 2012 09:53:34

Oula...

Bon, déjà on va te faire une fonction :

  1. Private Function GetDouble (ByVal s As String) As Double
  2. Return Convert.ToDouble(s, System.Globalization.CultureInfo.InvariantCulture)
  3. End Function


Comme ça, au lieu de mettre à chaque fois tout le texte, tu mets juste :
  1. TextBox15.Text = GetDouble(TextBox22.Text) * GetDouble(TextBox24.Text) ...
23 Février 2012 10:26:54

Ok, merci ça fonctionne et c'est beaucoup plus pratique.

Après me reste quelques questions mais je vois le bout.

Je voudrais que le résultat d'un calcul du type : TextBox15.Text = GetDouble(TextBox22.Text) * GetDouble(TextBox24.Text) ... n’apparaisse pas dans une textbox mais qu'il soit stocké dans une variable (x par exemple ou a b etc...) pour pouvoir réutiliser les résultat dans un autre calcul. du type:

TextBox15.Text = X * GetDouble(TextBox16.Text)

Merci
23 Février 2012 11:07:11

oui dsl, mais la qualité de tes réponses sont excellente mais je vais regarder, chercher et essayer et si je n'y arrive pas je reviens.

Merci
23 Février 2012 12:00:26

Re,

Je viens d'essayer ça mais j'ai un message d'erreur qui dit impossible de convertir une valeur du type double en system windows form textbox?

  1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.  
  3. Calculratio1 = GetDouble(TextBox22.Text) * GetDouble(TextBox24.Text) + GetDouble(TextBox1.Text) * GetDouble(TextBox16.Text) + GetDouble(TextBox2.Text) * GetDouble(TextBox17.Text) + GetDouble(TextBox3.Text) * GetDouble(TextBox18.Text) + GetDouble(TextBox4.Text) * GetDouble(TextBox19.Text) + GetDouble(TextBox5.Text) * GetDouble(TextBox20.Text) + GetDouble(TextBox7.Text) * GetDouble(TextBox21.Text)
  4.  
  5. TextBox15 = Calculratio1 * GetDouble(TextBox31.Text)
  6.  
  7. End Sub


Merci
a c 232 L Programmation
23 Février 2012 12:44:50

C'est parce que tu ne mets pas la valeur dans le texte d'une textbox, tu la mets directement dans l'objet textbox :
  1. TextBox15 = Calculratio1 * GetDouble(TextBox31.Text)



(je n'ai pas corrigé hein, c'est une copie de ta ligne qui foire pour que tu trouves tout seul :) )
a b L Programmation
24 Février 2012 21:06:31

ya pas a dire le vb c'est vraiment dégueulasse ... *
le c# c'est tellement mieux !
27 Février 2012 09:48:34

Bonjour,

Voila j'arrive au bout de ce que je veux faire mais après quelques recherches je n'arrive pas à mettre en place les condition.

voila ce que j'ai écrit:

  1. bordure_trottoir = GetDouble(TextBox31.Text) * bordure_type * bordure_prix
  2.  
  3. If CheckBox4.Checked Then [boudure_type] = TextBox25 And CheckBox5.unchecked
  4. If CheckBox5.Checked Then [boudure_type] = TextBox26 And CheckBox4.unchecked
  5. If CheckBox6.Checked Then [boudure_prix] = 1 And If CheckBox7.Checked Then [boudure_prix] = 1 and if CheckBox6.Checked and checkbox7.checked Then [boudure_prix] = 2 and if CheckBox6.unChecked and checkbox7.unchecked Then [boudure_prix] = 0
  6. End If


Merci

a c 232 L Programmation
27 Février 2012 10:17:29

Salut,

Tu as plusieurs soucis là...
- Pour faire un And dans une condition c'est :
  1. If condition1 And condition2 Then expression

- Tu as des soucis de nom de variable (boudure_type au lieu de bordure_type)
- Tu ne récupères encore pas la valeur de ta textbox (TextBoxX.Text !!)
- La variable unchecked n'existe pas. Si tu veux savoir si elle est pas cochée, il faut prendre la valeur Checked et appliquer un "Not". Me semble que c'est comme ça en VB :
  1. If Not Checkbox5.Checked Then expression



Et une dernière chose, si tu fais ton calcul de bordure_trottoire avant de calculer la valeur de bordure_type et de bordure_prix, ça va pas utiliser la valeur que tu veux. Ca s'exécute dans l'ordre.
27 Février 2012 13:57:25

bonjour,

Oui dsl pour ces erreur de .text ou de frappe que je peux corriger mais vu que je ne peux pas tester tant que le "code" n'est pas bon je trouve pas forcément.

dans la ligne : If CheckBox4.Checked Then [boudure_type] = TextBox25 And CheckBox5.unchecked je voulais dire:
Si la case 4 est cochée alors la textbox vaut X et la case 5 est décochée pour juste une seule case posible a coché, c'est l'une ou l'autre mais je sais pas si c'est possible.

je viens de réécrire le calcul mais j'ai encore 1 erreur car il me dit que end if doit etre précédé d'un if, là je comprend vraiment pas.


  1. If CheckBox4.Checked Then [bordure_type] = TextBox25.Text
  2. If CheckBox5.Checked Then [bordure_type] = TextBox26.Text
  3. If CheckBox6.Checked Then [bordure_prix] = 1
  4. If CheckBox7.Checked Then [bordure_prix] = 1
  5. If CheckBox6.Checked And CheckBox7.Checked Then [bordure_prix] = 2
  6. End If
  7.  
  8. bordure_trottoir = GetDouble(TextBox31.Text) * bordure_type * bordure_prix


merci
a c 232 L Programmation
27 Février 2012 14:11:12

Tu ne dois pas avoir besoin du End If dans ton cas, parce que le If tient sur une seule ligne.
27 Février 2012 15:04:47

re,

Ok pas besoin de End if.

Par contre j'ai changé j'ai utilisé des radioboutton pour n'avoir qu'une seule case de coché c'est pas mal.

Je voudrais aussi savoir si c'est possible de ne pas avoir à remplir tous les champs textbox avec des 0 pour que le calcul puisse se faire juste remplir les champs qui m’intéresse.

Merci

a c 232 L Programmation
27 Février 2012 20:55:51

Hmm, remplace la méthode GetDouble par quelque chose comme ça (je fais pas de VB... j'espère que c'est bon) :

  1. Private Function GetDouble (ByVal s As String) As Double
  2. If string.IsNullOrEmpty(s) Then Return 0
  3. Return Convert.ToDouble(s, System.Globalization.CultureInfo.InvariantCulture)
  4. End Function
28 Février 2012 15:45:49

Bonjour,

Je viens d'essayer les quelques ligne de code mais cela ne marche pas, lorsque je calcul sans avoir rempli tous les textbox, il me met une erreur.

Merci
a c 232 L Programmation
28 Février 2012 16:13:59

Quelle erreur il te met ?
28 Février 2012 16:32:25

cela doit venir de ça:

  1. Private Function GetDouble(ByVal p1 As String) As Object
  2. Throw New NotImplementedException
  3. End Function


il me dit "La méthode ou l'opération n'est pas implémentée."

le code:

  1. Public Class Form1
  2.  
  3.  
  4. 'Declaration
  5. <SerializableAttribute()> _
  6. <ComVisibleAttribute(True)> _
  7. Public Class CultureInfo
  8.  
  9. Private Function GetDouble(ByVal s As String) As Double
  10. If String.IsNullOrEmpty(s) Then Return 0
  11. Return Convert.ToDouble(s, System.Globalization.CultureInfo.InvariantCulture)
  12. End Function
  13.  
  14. End Class
  15.  
  16. Dim Calculratio1 As Double
  17.  
  18. Private Property decapge As Double
  19.  
  20. Private Property decaissement As Double
  21.  
  22. Private Property tout_venant As Double
  23.  
  24. Private Property concasse As Double
  25.  
  26. Private Property grave_bitume As Double
  27.  
  28. Private Property bicouche As Double
  29.  
  30. Private Property enrobe As Double
  31.  
  32. Private Property voirie As Double
  33.  
  34. Private Property bicouche_tr As Double
  35.  
  36. Private Property enrobe_tr As Double
  37.  
  38. Private Property grave_bitume_tr As Double
  39.  
  40. Private Property concasse_tr As Double
  41.  
  42. Private Property tout_venant_tr As Double
  43.  
  44. Private Property decaissement_tr As Double
  45.  
  46. Private Property decapge_tr As Double
  47.  
  48. Private Property trottoir As Object
  49.  
  50. Private Property boudure_droit As TextBox
  51.  
  52. Private Property bordure_type As Object
  53.  
  54. Private Property bordure_trottoir As Object
  55.  
  56. Private Property bordure_prix As Object
  57.  
  58.  
  59. Private Sub Label5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label5.Click
  60.  
  61. End Sub
  62.  
  63. Private Sub Label7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label7.Click
  64.  
  65. End Sub
  66.  
  67. Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged
  68.  
  69. End Sub
  70.  
  71. Private Sub Label8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label8.Click
  72.  
  73. End Sub
  74.  
  75. Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
  76.  
  77. End Sub
  78.  
  79. Private Sub CheckBox6_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox6.CheckedChanged
  80.  
  81. End Sub
  82.  
  83. Private Sub TabPage1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabPage1.Click
  84.  
  85. End Sub
  86.  
  87. Private Sub Label10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label10.Click
  88.  
  89. End Sub
  90.  
  91. Private Sub TextBox6_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
  92.  
  93. End Sub
  94.  
  95. Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
  96.  
  97. End Sub
  98.  
  99. Private Sub TextBox12_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox12.TextChanged
  100.  
  101. End Sub
  102.  
  103. Private Sub TextBox15_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
  104.  
  105. End Sub
  106.  
  107. Private Sub TextBox15_TextChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox15.TextChanged
  108.  
  109. End Sub
  110.  
  111. Private Sub TextBox13_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox13.TextChanged
  112.  
  113. End Sub
  114.  
  115. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  116.  
  117. decapge = GetDouble(TextBox22.Text) * GetDouble(TextBox24.Text)
  118. decaissement = GetDouble(TextBox1.Text) * GetDouble(TextBox16.Text)
  119. tout_venant = GetDouble(TextBox2.Text) * GetDouble(TextBox17.Text)
  120. concasse = GetDouble(TextBox3.Text) * GetDouble(TextBox18.Text)
  121. grave_bitume = GetDouble(TextBox4.Text) * GetDouble(TextBox19.Text)
  122. enrobe = GetDouble(TextBox5.Text) * 2.39 * GetDouble(TextBox20.Text)
  123. bicouche = GetDouble(TextBox7.Text) * GetDouble(TextBox21.Text)
  124.  
  125. voirie = (GetDouble(TextBox6.Text) + 1) * decapge + (GetDouble(TextBox6.Text) + 1) * decaissement + (GetDouble(TextBox6.Text) + 1) * tout_venant + GetDouble(TextBox6.Text) * concasse + GetDouble(TextBox6.Text) * grave_bitume + GetDouble(TextBox6.Text) * enrobe + GetDouble(TextBox6.Text) * bicouche
  126.  
  127. decapge_tr = GetDouble(TextBox23.Text) * GetDouble(TextBox24.Text)
  128. decaissement_tr = GetDouble(TextBox14.Text) * GetDouble(TextBox16.Text)
  129. tout_venant_tr = GetDouble(TextBox13.Text) * GetDouble(TextBox17.Text)
  130. concasse_tr = GetDouble(TextBox12.Text) * GetDouble(TextBox18.Text)
  131. grave_bitume_tr = GetDouble(TextBox11.Text) * GetDouble(TextBox19.Text)
  132. enrobe_tr = GetDouble(TextBox10.Text) * 2.39 * GetDouble(TextBox20.Text)
  133. bicouche_tr = GetDouble(TextBox8.Text) * GetDouble(TextBox21.Text)
  134.  
  135. trottoir = GetDouble(TextBox9.Text) * decapge_tr + GetDouble(TextBox9.Text) * decaissement_tr + GetDouble(TextBox9.Text) * tout_venant_tr + GetDouble(TextBox9.Text) * concasse_tr + GetDouble(TextBox9.Text) * grave_bitume_tr + GetDouble(TextBox9.Text) * enrobe_tr + GetDouble(TextBox9.Text) * bicouche_tr
  136.  
  137.  
  138. If RadioButton1.Checked Then [bordure_type] = TextBox25.Text
  139. If RadioButton2.Checked Then [bordure_type] = TextBox26.Text
  140. If CheckBox6.Checked Then [bordure_prix] = 1
  141. If CheckBox7.Checked Then [bordure_prix] = 1
  142. If CheckBox6.Checked And CheckBox7.Checked Then [bordure_prix] = 2
  143.  
  144.  
  145. bordure_trottoir = GetDouble(TextBox31.Text) * bordure_type * bordure_prix
  146.  
  147. TextBox15.Text = (voirie + trottoir) * GetDouble(TextBox31.Text)
  148.  
  149. End Sub
  150.  
  151.  
  152. Public Sub TextBox16_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox16.TextChanged
  153. TextBox15.Text = 12
  154. End Sub
  155.  
  156. Private Sub Label23_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label23.Click
  157.  
  158. End Sub
  159.  
  160. Private Sub Label27_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label27.Click
  161.  
  162. End Sub
  163.  
  164. Private Sub TextBox25_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox25.TextChanged
  165.  
  166. End Sub
  167.  
  168. Private Sub TextBox30_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox30.TextChanged
  169.  
  170. End Sub
  171.  
  172. Private Sub TextBox29_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox29.TextChanged
  173.  
  174. End Sub
  175.  
  176.  
  177. Private Sub Label29_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label29.Click
  178.  
  179. End Sub
  180.  
  181. Private Function CheckBox16() As Object
  182. Throw New NotImplementedException
  183. End Function
  184.  
  185. Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
  186.  
  187. End Sub
  188.  
  189. Private Function GetDouble(ByVal p1 As String) As Object
  190. Throw New NotImplementedException
  191. End Function
  192.  
  193. End Class
a c 232 L Programmation
28 Février 2012 17:23:21

Pourquoi tu as créé une classe CultureInfo ???

Supprime la classe CultureInfo :
  1. 'Declaration
  2. <SerializableAttribute()> _
  3. <ComVisibleAttribute(True)> _
  4. Public Class CultureInfo
  5.  
  6. Private Function GetDouble(ByVal s As String) As Double
  7. If String.IsNullOrEmpty(s) Then Return 0
  8. Return Convert.ToDouble(s, System.Globalization.CultureInfo.InvariantCulture)
  9. End Function
  10.  
  11. End Class


Et remplace la fonction GetDouble qui a Throw New NotImplementedException par la fonction que je t'ai filé...
29 Février 2012 08:21:56

Bonjour,

Alors j'ai remplacé par ce que tu m'a dit mais du coup j'ai 46 erreurs...
Il me dit "instruction non valide dans un espace de nom" quasiment à chaque ligne qui commence par private....

le code:

Public Class Form1


Private Function GetDouble(ByVal s As String) As Double
If String.IsNullOrEmpty(s) Then Return 0
Return Convert.ToDouble(s, System.Globalization.CultureInfo.InvariantCulture)
End Function

End Class

Dim Calculratio1 As Double

Private Property decapge As Double

Private Property decaissement As Double

Private Property tout_venant As Double

Private Property concasse As Double

Private Property grave_bitume As Double

Private Property bicouche As Double

Private Property enrobe As Double

Private Property voirie As Double

Private Property bicouche_tr As Double

Private Property enrobe_tr As Double

Private Property grave_bitume_tr As Double

Private Property concasse_tr As Double

Private Property tout_venant_tr As Double

Private Property decaissement_tr As Double

Private Property decapge_tr As Double

Private Property trottoir As Object

Private Property boudure_droit As TextBox

Private Property bordure_type As Object

Private Property bordure_trottoir As Object

Private Property bordure_prix As Object


Private Sub Label5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label5.Click

End Sub

Private Sub Label7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label7.Click

End Sub

Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged

End Sub

Private Sub Label8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label8.Click

End Sub

Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click

End Sub

Private Sub CheckBox6_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox6.CheckedChanged

End Sub

Private Sub TabPage1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabPage1.Click

End Sub

Private Sub Label10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label10.Click

End Sub

Private Sub TextBox6_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)

End Sub

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)

End Sub

Private Sub TextBox12_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox12.TextChanged

End Sub

Private Sub TextBox15_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)

End Sub

Private Sub TextBox15_TextChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox15.TextChanged

End Sub

Private Sub TextBox13_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox13.TextChanged

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

decapge = GetDouble(TextBox22.Text) * GetDouble(TextBox24.Text)
decaissement = GetDouble(TextBox1.Text) * GetDouble(TextBox16.Text)
tout_venant = GetDouble(TextBox2.Text) * GetDouble(TextBox17.Text)
concasse = GetDouble(TextBox3.Text) * GetDouble(TextBox18.Text)
grave_bitume = GetDouble(TextBox4.Text) * GetDouble(TextBox19.Text)
enrobe = GetDouble(TextBox5.Text) * 2.39 * GetDouble(TextBox20.Text)
bicouche = GetDouble(TextBox7.Text) * GetDouble(TextBox21.Text)

voirie = (GetDouble(TextBox6.Text) + 1) * decapge + (GetDouble(TextBox6.Text) + 1) * decaissement + (GetDouble(TextBox6.Text) + 1) * tout_venant + GetDouble(TextBox6.Text) * concasse + GetDouble(TextBox6.Text) * grave_bitume + GetDouble(TextBox6.Text) * enrobe + GetDouble(TextBox6.Text) * bicouche

decapge_tr = GetDouble(TextBox23.Text) * GetDouble(TextBox24.Text)
decaissement_tr = GetDouble(TextBox14.Text) * GetDouble(TextBox16.Text)
tout_venant_tr = GetDouble(TextBox13.Text) * GetDouble(TextBox17.Text)
concasse_tr = GetDouble(TextBox12.Text) * GetDouble(TextBox18.Text)
grave_bitume_tr = GetDouble(TextBox11.Text) * GetDouble(TextBox19.Text)
enrobe_tr = GetDouble(TextBox10.Text) * 2.39 * GetDouble(TextBox20.Text)
bicouche_tr = GetDouble(TextBox8.Text) * GetDouble(TextBox21.Text)

trottoir = GetDouble(TextBox9.Text) * decapge_tr + GetDouble(TextBox9.Text) * decaissement_tr + GetDouble(TextBox9.Text) * tout_venant_tr + GetDouble(TextBox9.Text) * concasse_tr + GetDouble(TextBox9.Text) * grave_bitume_tr + GetDouble(TextBox9.Text) * enrobe_tr + GetDouble(TextBox9.Text) * bicouche_tr


If RadioButton1.Checked Then [bordure_type] = TextBox25.Text
If RadioButton2.Checked Then [bordure_type] = TextBox26.Text
If CheckBox6.Checked Then [bordure_prix] = 1
If CheckBox7.Checked Then [bordure_prix] = 1
If CheckBox6.Checked And CheckBox7.Checked Then [bordure_prix] = 2


bordure_trottoir = GetDouble(TextBox31.Text) * bordure_type * bordure_prix

TextBox15.Text = (voirie + trottoir) * GetDouble(TextBox31.Text)

End Sub


Public Sub TextBox16_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox16.TextChanged
TextBox15.Text = 12
End Sub

Private Sub Label23_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label23.Click

End Sub

Private Sub Label27_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label27.Click

End Sub

Private Sub TextBox25_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox25.TextChanged

End Sub

Private Sub TextBox30_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox30.TextChanged

End Sub

Private Sub TextBox29_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox29.TextChanged

End Sub


Private Sub Label29_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label29.Click

End Sub

Private Function CheckBox16() As Object
Throw New NotImplementedException
End Function

Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)

End Sub


End Class


merci
a c 232 L Programmation
29 Février 2012 09:00:46

Tu n'as pas supprimé la classe comme je te l'ai dit...
Je t'ai donné tout le code à supprimer, tu n'as supprimé que la ligne de début de classe.

Du coup, supprime la ligne "End Class" du début du fichier
29 Février 2012 18:07:29

Ok, c'est bon tout marche comme je veux un grand merci à toi omaR.

Par contre je galère un peu à savoir ou enregistre visual basic express les fichier, j'ai vu qu'il y en avait plusieurs mais je suis un peut perdu et comment fait t-on pour protéger le mini logiciel ainsi que le partager?

J'envisage aussi de faire un export vers excel des resultats des textbox, est-ce possible? par exemple, dans une feuille excel type, faire que la textbox31.text corresponde avec la cellule A 32.

Merci
a c 232 L Programmation
29 Février 2012 18:20:19

Normalement il doit te créer un projet avec tous les fichiers.
Par défaut dans C:\Users\ton-nom\Documents\Visual Studio 2010\Projects\Nom-du-projet

Et pour donner le logiciel à quelqu'un, il faut faire une build, et fournir le fichier .exe qui a été créé dans le dossier bin\Debug (ou bin\Release si tu as fait une version release).


Pour exporter vers excel, assez délicat. Une solution simple serait d'exporter les résultats au format CSV, qui peuvent être lu par Excel.
Mais pour créer un fichier .xls c'est mort...
a c 232 L Programmation
29 Février 2012 21:58:33

Hmm, peut être avec une dll Interop Excel, à rechercher en effet.
5 Mars 2012 13:35:15

Bonjour,

as tu une idée pour faire cet export?
J'ai fais pas mal de recherche et cela ne donne pas grand chose. je sais juste que cela est réalisable avec le petit bout de code que je ne comprend pas trop (voir plus haut).
sinon c'est quoi une dll interop?

Merci
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS