SOMAR 15 TEXTBOX FORMATADOS COM FORMATCURRENCY

MAGICMEN 06/08/2013 21:50:54
#427122
Boa tarde

Tenho 15 textbox formatados com formatcurrency

txt1cts.Text = FormatCurrency(txt1cts.Text)

até

txt15cts.Text = FormatCurrency(txt15cts.Text)

como consigo somar todos os valores para total.text

visual studio 2012 ( visual basic)

MAGICMEN 07/08/2013 08:50:37
#427143
Bom dia
podem ajudar a melhora a soma entre textbox

anexo exemplo

Obrigado
ASHKATCHUP 07/08/2013 09:36:08
#427147
Resposta escolhida
Bom dia.

Primeiramente, por que tu não usa MaskedTextBox pra formatar? é melhor do que usar TextBox e ficar formatando ele.

Bom, vamos ao teu problema. Há diversas maneiras de resolvê-lo, mas optei pela seguinte:

-Altere a propriedade TAG dos textbox que devem ser somados para algum texto identificador. Exemplo: [Ô]somar[Ô]
-Na rotina ou botão de cálculo, faça a soma da seguinte forma:


Dim dTotal As Double = 0
Dim dValor As Double = 0
[ô]
[ô]Esse For varrerá todos controles da tela
For Each c In Me.Controls
[ô]
[ô]Testa se o controle for do tipo [Ô]Textbox[Ô]
If c.GetType().Name = [Ô]TextBox[Ô] Then
[ô]
[ô]Testa o valor da propriedade Tag
[ô]Somente somará os que tiverem [Ô]somar[Ô] na propriedade Taf
If c.Tag = [Ô]somar[Ô] Then
[ô]
[ô]Variavel temporária para armazenar o valor do TextBox atual
dValor = 0
[ô]
[ô]Essa função serve para tentar converter uma string para double
[ô]Se não conseguir, ela retornará zero (0)
[ô]Criei a variável temporária antes pois a função não retorna um valor
[ô]Ela altera o valor da segunda variavel passada como parâmetro
Double.TryParse(c.Text, dValor)
[ô]
[ô]Armazena o total
dTotal = dTotal + dValor
[ô]
End If
[ô]
End If
[ô]
Next
[ô]
[ô]Mostra o total calculado
Label1.Text = dTotal.ToString()
MAGICMEN 07/08/2013 10:21:23
#427156
Boa tarde

viva ASHKATCHUP não consigo que some está dificil

já fiz como me disseste mas não que somar na mesma

pode ajudar ?

Obrigado
ASHKATCHUP 07/08/2013 10:42:35
#427159
Cara, tu não entendeu o que eu falei no post anterior.

Tu somente deve colocar a tag [Ô]somar[Ô] nos TextBox que devem ser incluidos na soma.

No teu código, eu vi que tu também colocou essa tag no Textbox do total (TxtTotal)

Além disso, que problema tu está tendo? A soma está errada? Não mostra nada? Aparece um errp?

Eu tenho o Visual Studio 2008, então não consigo abrir o teu projeto...
MAGICMEN 07/08/2013 11:07:35
#427163
já consegui que faça a soma
o problema está na formatação das textbox

necessito que formate em euro

MAGICMEN 07/08/2013 11:18:51
#427166

Se colocar standard ( valor fica 0,01 ) soma

se colocar Currency ( valor fica 0,01 € ) Não soma


If txt1cts.Text <> [Ô][Ô] Then
txt1cts.Text = Format(txt1cts.Text, [Ô]Standard[Ô])
End If

If txt2cts.Text <> [Ô][Ô] Then
txt2cts.Text = Format(txt2cts.Text, [Ô]currency[Ô])
End If


ASHKATCHUP 07/08/2013 12:32:21
#427172
Então, na hora de somar os valores dos textbox, retire o identificador da moeda.

é uma gambiarra, mas funciona


Dim sTemp as String
[ô]
[ô]Essa variável temporária serve somente para guardar o texto do textbox sem o identificador da moeda
[ô]Se for em outra moeda, como dolar ou real, tem que mudar a linha abaixo
sTemp = c.Text.Replace([Ô]€[Ô],[Ô][Ô])

Double.TryParse(sTemp, dValor)
MAGICMEN 07/08/2013 13:19:44
#427178
Valeu funcionou assim

Dim dTotal As Double = 0
Dim dValor As Double = 0
Dim sTemp As String
[ô]

For Each c In Me.Controls
[ô]

If c.GetType().Name = [Ô]TextBox[Ô] Then


sTemp = c.Text.Replace([Ô]€[Ô], [Ô][Ô])
[ô]Testa o valor da propriedade Tag

If c.Tag = [Ô]somar[Ô] Then
[ô]

dValor = 0
[ô]

Double.TryParse(c.Text, dValor)
Double.TryParse(sTemp, dValor)
[ô]Armazena o total
dTotal = dTotal + dValor

End If
[ô]
End If
[ô]
Next
[ô]

TxtTotal.Text = dTotal.ToString()
If TxtTotal.Text <> [Ô][Ô] Then
TxtTotal.Text = Format(TxtTotal.Text, [Ô]currency[Ô])
End If
Tópico encerrado , respostas não são mais permitidas