Pô gostaria da ajuda de vocês, estou fazendo um programinha, onde o usuário digita um número no TEXTBOX e quando ele clica no BOTAO do sinal ( +, -, *, / ) , o Valor digitado no TEXTBOX e mais o sinal pressionado(+, -, *, /) vai para um LISTBOX. Quando ele pressiona o botão calcula, o programa calcula todo os valores que estão no LISTBOX.
Agora pessoal, o meu problema é o seguinte: não sei como faço para realizar um calculo que atribui a uma variável um valor integer concatenando com o sinal ( +, -, *, /) digitado. Pois quando faço isso o código da ERROOO. :blink: (Acho que deve ser por causa dos tipos serem diferentes) GENTE, alguém sabe como posso resolver isso????????
(Ah! Logo abaixo do exemplo postei o código todo).
Exemplo:
Dim soma as Integer
Dim sinal as String
Dim ValorDigitado as Integer
soma = ValorDigitado + sinal
Programinha - Marquei de negrito a parte do código que se refere a dúvida do exemplo acima
Private Sub CmdCalcula_Click()
Dim iSoma As Integer
Dim iSomaGeral As Integer
Dim iConverte As Integer
Dim iConverteGeral As Integer
Dim strGuarda As String
Dim iSinal As String
Dim strNumero As String
Dim iCalcula As Integer
iSoma = 0
iSomaGeral = 0
iCalcula = 0
strGuarda = ""
'Pega todos os elementos da LISTBOX
For i = 0 To LstCalcula.ListCount - 1
strGuarda = TxtNumero.Text & vbctlf & LstCalcula.List(i)
[b]strNumero = Mid(LstCalcula.List(i), 1, Len(LstCalcula.List(i)) - 1)
iSinal = Right(LstCalcula.List(i), 1)
'Converte a STRING do LISTBOX para INTEGER
iConverte = CInt(strNumero)
iCalcula = iConverte + iSinal
[/b]
'Acumula operação com sinais numa variável
iSoma = iSoma + iCalcula
Next i
'Adiciona o último número digitado na LISTBOX
LstCalcula.AddItem (TxtNumero.Text)
'Converte a STRING do TEXTBOX para INTEGER
iConverteGeral = CInt(TxtNumero.Text)
'Acumula soma para o resultado geral
iSomaGeral = iSoma + TxtNumero.Text
'Apaga o último número digitado no TEXT
TxtNumero.Text = ""
'Mostra no label o resultado do cálculo
LblMostraResultado.Caption = iSomaGeral
'TxtNumero.Text = LstCalcula.List(LstCalcula.ListIndex)
End Sub
Private Sub CmdLimpa_Click()
'Apaga tudo que está no formulário
TxtNumero.Text = ""
LstCalcula.Clear
LblMostraResultado.Caption = ""
End Sub
Private Sub CmdMultiplicacao_Click()
'Adiciona o valor e o sinal do cálculo (*)
If TxtNumero <> "" Then
LstCalcula.AddItem (TxtNumero.Text + "*")
TxtNumero.Text = ""
TxtNumero.SetFocus
End If
End Sub
Private Sub CmdRetorna_Click()
'Pergunta se o usuário deseja sair do sistema
If MsgBox("Deseja sair ?", vbYesNo + vbQuestion, "Mensagem") = vbYes Then
End
End If
End Sub
Private Sub CmdSoma_Click()
'Adiciona o valor e o sinal do cálculo (+)
If TxtNumero <> "" Then
LstCalcula.AddItem (TxtNumero.Text + "+")
TxtNumero.Text = ""
TxtNumero.SetFocus
End If
End Sub
Private Sub CmdSubtracao_Click()
'Adiciona o valor e o sinal do cálculo (-)
If TxtNumero <> "" Then
LstCalcula.AddItem (TxtNumero.Text)
TxtNumero.Text = ""
TxtNumero.SetFocus
End If
End Sub
Pergunta
Vick
Oi pessoal beleza?
Pô gostaria da ajuda de vocês, estou fazendo um programinha, onde o usuário digita um número no TEXTBOX e quando ele clica no BOTAO do sinal ( +, -, *, / ) , o Valor digitado no TEXTBOX e mais o sinal pressionado(+, -, *, /) vai para um LISTBOX. Quando ele pressiona o botão calcula, o programa calcula todo os valores que estão no LISTBOX.
Agora pessoal, o meu problema é o seguinte: não sei como faço para realizar um calculo que atribui a uma variável um valor integer concatenando com o sinal ( +, -, *, /) digitado. Pois quando faço isso o código da ERROOO. :blink: (Acho que deve ser por causa dos tipos serem diferentes) GENTE, alguém sabe como posso resolver isso????????
(Ah! Logo abaixo do exemplo postei o código todo).
Exemplo:
Programinha - Marquei de negrito a parte do código que se refere a dúvida do exemplo acimaPrivate Sub CmdCalcula_Click() Dim iSoma As Integer Dim iSomaGeral As Integer Dim iConverte As Integer Dim iConverteGeral As Integer Dim strGuarda As String Dim iSinal As String Dim strNumero As String Dim iCalcula As Integer iSoma = 0 iSomaGeral = 0 iCalcula = 0 strGuarda = "" 'Pega todos os elementos da LISTBOX For i = 0 To LstCalcula.ListCount - 1 strGuarda = TxtNumero.Text & vbctlf & LstCalcula.List(i) [b]strNumero = Mid(LstCalcula.List(i), 1, Len(LstCalcula.List(i)) - 1) iSinal = Right(LstCalcula.List(i), 1) 'Converte a STRING do LISTBOX para INTEGER iConverte = CInt(strNumero) iCalcula = iConverte + iSinal [/b] 'Acumula operação com sinais numa variável iSoma = iSoma + iCalcula Next i 'Adiciona o último número digitado na LISTBOX LstCalcula.AddItem (TxtNumero.Text) 'Converte a STRING do TEXTBOX para INTEGER iConverteGeral = CInt(TxtNumero.Text) 'Acumula soma para o resultado geral iSomaGeral = iSoma + TxtNumero.Text 'Apaga o último número digitado no TEXT TxtNumero.Text = "" 'Mostra no label o resultado do cálculo LblMostraResultado.Caption = iSomaGeral 'TxtNumero.Text = LstCalcula.List(LstCalcula.ListIndex) End Sub Private Sub CmdLimpa_Click() 'Apaga tudo que está no formulário TxtNumero.Text = "" LstCalcula.Clear LblMostraResultado.Caption = "" End Sub Private Sub CmdMultiplicacao_Click() 'Adiciona o valor e o sinal do cálculo (*) If TxtNumero <> "" Then LstCalcula.AddItem (TxtNumero.Text + "*") TxtNumero.Text = "" TxtNumero.SetFocus End If End Sub Private Sub CmdRetorna_Click() 'Pergunta se o usuário deseja sair do sistema If MsgBox("Deseja sair ?", vbYesNo + vbQuestion, "Mensagem") = vbYes Then End End If End Sub Private Sub CmdSoma_Click() 'Adiciona o valor e o sinal do cálculo (+) If TxtNumero <> "" Then LstCalcula.AddItem (TxtNumero.Text + "+") TxtNumero.Text = "" TxtNumero.SetFocus End If End Sub Private Sub CmdSubtracao_Click() 'Adiciona o valor e o sinal do cálculo (-) If TxtNumero <> "" Then LstCalcula.AddItem (TxtNumero.Text) TxtNumero.Text = "" TxtNumero.SetFocus End If End SubObrigada
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.