Notifications
Clear all

VBA em Useform para atualizar dados já existentes

6 Posts
2 Usuários
0 Reactions
1,770 Visualizações
(@yatagan)
Posts: 22
Eminent Member
Topic starter
 

Olá, Boa Noite.

Eu tenho no meu formulário (Userfom2) todos os dados puxados da planilha "Alimentos"
Agora eu quero qnd eu mudar os dados no formulário e aperta o botão ATUALIZAR os dados correspondentes atualizem e logo depois apareça uma msgbox confirmando o ato e logo depois os dados das textbox mudem para os que ficaram atualizados na planilha.

Estou mandando o anexo da planilha

 
Postado : 10/01/2018 3:28 pm
(@klarc28)
Posts: 971
Prominent Member
 

O código foi alterado

 
Postado : 10/01/2018 4:39 pm
(@yatagan)
Posts: 22
Eminent Member
Topic starter
 

Deu certo, obrigado.

Agora se nenhum valor for alterado das textbox e alguem apertar atualizar. Tem como aparecer a msgbox "Não houve mudança de dados"

 
Postado : 10/01/2018 5:34 pm
(@klarc28)
Posts: 971
Prominent Member
 

O código foi alterado

 
Postado : 10/01/2018 5:58 pm
(@yatagan)
Posts: 22
Eminent Member
Topic starter
 

não consegui embutir esse codigo, tentei várias vezes e sempre dá erro.

A msg de atualizado vai aparecer mesmo assim se nada for mexido, então coloquei uma msgbox antes perguntando se realmente a pessoa quer alterar.

Obrigado.

Se quiser da uma olhada no vba do userform2 estou anexando dnv, mas dessa vez está atualizado com as últimas configurações.

 
Postado : 10/01/2018 8:15 pm
(@klarc28)
Posts: 971
Prominent Member
 
Private Sub atualizar_Click()
Dim mudou As Boolean
Dim achou As Boolean
Dim linha As Long
mudou = False
linha = 3
achou = False
'If MsgBox("Deseja realmente Alterar este Alimento?", vbYesNo + vbQuestion, "Atualização do Alimento") = vbYes Then

While Planilha2.Cells(linha, 2).Value <> "" And achou = False

If Planilha2.Cells(linha, 2).Value = Me.alimento1.Text Then
achou = True
'aqui você pode preencher a planilha
'mudando o número da coluna
'mudando os nomes das caixas de texto
If CStr(Planilha2.Cells(linha, 2).Value) <> CStr(alimento.Text) Then
Planilha2.Cells(linha, 2).Value = CStr(alimento.Text)
mudou = True
End If
If CDbl(Planilha2.Cells(linha, 3).Value) <> CDbl(PTN.Text) Then

Planilha2.Cells(linha, 3).Value = CDbl(PTN.Text)
mudou = True
End If

If CDbl(Planilha2.Cells(linha, 4).Value) <> CDbl(NDPCal.Text) Then

Planilha2.Cells(linha, 4).Value = CDbl(NDPCal.Text)
mudou = True
End If

If CDbl(Planilha2.Cells(linha, 5).Value) <> CDbl(LIP.Text) Then
Planilha2.Cells(linha, 5).Value = CDbl(LIP.Text)
mudou = True
End If

If CDbl(Planilha2.Cells(linha, 6).Value) <> CDbl(colesterol.Text) Then

Planilha2.Cells(linha, 6).Value = CDbl(colesterol.Text)
mudou = True
End If

If CDbl(Planilha2.Cells(linha, 7).Value) <> CDbl(CHO.Text) Then
Planilha2.Cells(linha, 7).Value = CDbl(CHO.Text)

mudou = True

End If

If CDbl(Planilha2.Cells(linha, 8).Value) <> CDbl(FIB.Text) Then
Planilha2.Cells(linha, 8).Value = CDbl(FIB.Text)
mudou = True
End If
'minerais
If CDbl(Planilha2.Cells(linha, 9).Value) <> CDbl(ca.Text) Then

Planilha2.Cells(linha, 9).Value = CDbl(ca.Text)
mudou = True
End If

If CDbl(Planilha2.Cells(linha, 10).Value) <> CDbl(mg.Text) Then
Planilha2.Cells(linha, 10).Value = CDbl(mg.Text)
mudou = True
End If

If CDbl(Planilha2.Cells(linha, 11).Value) <> CDbl(mn.Text) Then
Planilha2.Cells(linha, 11).Value = CDbl(mn.Text)
mudou = True
End If

If CDbl(Planilha2.Cells(linha, 12).Value) <> CDbl(p.Text) Then
Planilha2.Cells(linha, 12).Value = CDbl(p.Text)
mudou = True
End If

If CDbl(Planilha2.Cells(linha, 13).Value) <> CDbl(fe.Text) Then
Planilha2.Cells(linha, 13).Value = CDbl(fe.Text)
mudou = True
End If

If CDbl(Planilha2.Cells(linha, 14).Value) <> CDbl(na.Text) Then
Planilha2.Cells(linha, 14).Value = CDbl(na.Text)
mudou = True
End If

If CDbl(Planilha2.Cells(linha, 15).Value) <> CDbl(k.Text) Then
Planilha2.Cells(linha, 15).Value = CDbl(k.Text)
mudou = True
End If

If CDbl(Planilha2.Cells(linha, 16).Value) <> CDbl(cu.Text) Then
Planilha2.Cells(linha, 16).Value = CDbl(cu.Text)
mudou = True
End If

If CDbl(Planilha2.Cells(linha, 17).Value) <> CDbl(zn.Text) Then
Planilha2.Cells(linha, 17).Value = CDbl(zn.Text)
mudou = True
End If

'vitaminas
If CDbl(Planilha2.Cells(linha, 18).Value) <> CDbl(a.Text) Then
Planilha2.Cells(linha, 18).Value = CDbl(a.Text)
mudou = True
End If

If CDbl(Planilha2.Cells(linha, 19).Value) <> CDbl(re.Text) Then
Planilha2.Cells(linha, 19).Value = CDbl(re.Text)
mudou = True
End If

If CDbl(Planilha2.Cells(linha, 20).Value) <> CDbl(b1.Text) Then
Planilha2.Cells(linha, 20).Value = CDbl(b1.Text)
mudou = True
End If

If CDbl(Planilha2.Cells(linha, 21).Value) <> CDbl(b2.Text) Then
Planilha2.Cells(linha, 21).Value = CDbl(b2.Text)
mudou = True
End If

If CDbl(Planilha2.Cells(linha, 22).Value) <> CDbl(b6.Text) Then
Planilha2.Cells(linha, 22).Value = CDbl(b6.Text)
mudou = True
End If

If CDbl(Planilha2.Cells(linha, 23).Value) <> CDbl(b3.Text) Then
Planilha2.Cells(linha, 23).Value = CDbl(b3.Text)
mudou = True
End If

If CDbl(Planilha2.Cells(linha, 24).Value) <> CDbl(c.Text) Then
Planilha2.Cells(linha, 24).Value = CDbl(c.Text)
mudou = True
End If


'ácidos graxos

If CDbl(Planilha2.Cells(linha, 25).Value) <> CDbl(SAT.Text) Then
Planilha2.Cells(linha, 25).Value = CDbl(SAT.Text)
mudou = True
End If

If CDbl(Planilha2.Cells(linha, 26).Value) <> CDbl(MONO.Text) Then
Planilha2.Cells(linha, 26).Value = CDbl(MONO.Text)
mudou = True
End If


If CDbl(Planilha2.Cells(linha, 27).Value) <> CDbl(POLI.Text) Then
Planilha2.Cells(linha, 27).Value = CDbl(POLI.Text)
mudou = True
End If

'para atualizar as caixas de texto:
alimento.Text = Planilha2.Cells(linha, 2).Value
PTN.Text = Planilha2.Cells(linha, 3).Value
NDPCal.Text = Planilha2.Cells(linha, 4).Value
LIP.Text = Planilha2.Cells(linha, 5).Value
colesterol.Text = Planilha2.Cells(linha, 6).Value
CHO.Text = Planilha2.Cells(linha, 7).Value
FIB.Text = Planilha2.Cells(linha, 8).Value
'minerais
ca.Text = Planilha2.Cells(linha, 9).Value
mg.Text = Planilha2.Cells(linha, 10).Value
mn.Text = Planilha2.Cells(linha, 11).Value
p.Text = Planilha2.Cells(linha, 12).Value
fe.Text = Planilha2.Cells(linha, 13).Value
na.Text = Planilha2.Cells(linha, 14).Value
k.Text = Planilha2.Cells(linha, 15).Value
cu.Text = Planilha2.Cells(linha, 16).Value
zn.Text = Planilha2.Cells(linha, 17).Value
'vitaminas
a.Text = Planilha2.Cells(linha, 18).Value
re.Text = Planilha2.Cells(linha, 19).Value
b1.Text = Planilha2.Cells(linha, 20).Value
b2.Text = Planilha2.Cells(linha, 21).Value
b6.Text = Planilha2.Cells(linha, 22).Value
b3.Text = Planilha2.Cells(linha, 23).Value
c.Text = Planilha2.Cells(linha, 24).Value
'ácidos graxos
SAT.Text = Planilha2.Cells(linha, 25).Value
MONO.Text = Planilha2.Cells(linha, 26).Value
POLI.Text = Planilha2.Cells(linha, 27).Value

'mensagem

If mudou = True Then

MsgBox "Alteração realizada com sucesso!", vb, "Atualizado"

Call limpar_todos_textoboxes

GoTo fim


End If
End If
linha = linha + 1

Wend
If mudou = False Then

MsgBox "Nenhum dado foi alterado", vb, "Operação Cancelada"
End If

fim:

'Else

'End If

End Sub
 
Postado : 11/01/2018 3:19 am