Notifications
Clear all

Qual foi o erro?

5 Posts
3 Usuários
0 Reactions
1,122 Visualizações
(@tonilanis)
Posts: 0
New Member
Topic starter
 

Tenho as macros abaixo com o intuito de apagar os registros, no entanto a intenção era que a ser pressionada a opção Ok o dados seriam apagado e se pressionado cancelar, a macro seja interrompida e portanto não apague os dados. O que faltou pra funcionar?

Sub Apaga_Registro_Recebimento()
'
' Apaga_Registro_Recebimento Macro
'
Dim resposta
resposta = MsgBox("Deseja realmente deletar tudo?", vbQuestion + vbOKCancel, "Confirmação")
If respota = vbCancel Then Exit Sub
'
Sheets("Registro de RECEBIMENTOS").Select
Range("A10:P5000").Select
Selection.ClearContents
Sheets("Menu").Select
Range("A1").Select
End Sub

Sub Apaga_Registro_Locações()
'
' Apaga_Registro_Recebimento Macro
'
Dim resposta
resposta = MsgBox("Deseja realmente deletar tudo?", vbQuestion + vbOKCancel, "Confirmação")
If respota = vbCancel Then Exit Sub
'
Sheets("Registro de RECEBIMENTOS").Select
Range("A10:i5000").Select
Selection.ClearContents
Sheets("Menu").Select
Range("A1").Select
End Sub

 
Postado : 05/10/2015 3:27 pm
(@mprudencio)
Posts: 0
New Member
 

Tem varios erros

A variavel resposta nao diz de que tipo é

o teste if esta faltando fecha-lo com um end if no final do codigo

Msgbox nao da pra usar como variavel. ate onde sei.

Vc colocou dois botoes na msgbox o vbquestion e o vbokcancel não tenho certeza mas acho que isso não é possivel.

E por ultimo faltou um else para executar o codigo caso o usuario confirme a execução.

O inicio do seu codigo deveria ficar assim: (nao testei)

Sub apaga dados()

Msgbox "Deseja Realmente Deletar Tudo?", vbokcancel, "Confirmação")

if vbcancel then exit sub

else

codigo que deleta os dados

end if

End sub

 
Postado : 05/10/2015 4:35 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Toni, o único erro nas rotinas é a falta de uma letra, onde temos :
Dim resposta
resposta =.........................., mas na condição IF você colocou :
If respota = vbCancel Then Exit Sub
coloque o "s" e funcionará perfeitamente.

[]s

 
Postado : 05/10/2015 7:23 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Marcelo, só para esclarecer :

Tem varios erros - O único erro foi o erro na digitação, faltou o "s" em "respota"

A variavel resposta nao diz de que tipo é - Quando não declaramos o tipo, ele é Variant

o teste if esta faltando fecha-lo com um end if no final do codigo - Não precisamos fechar o IF qdo definimos a ação logo apos o Then "If respota = vbCancel Then Exit Sub"

Msgbox nao da pra usar como variavel. ate onde sei. A Variável aqui é a "resposta"

Vc colocou dois botoes na msgbox o vbquestion e o vbokcancel não tenho certeza mas acho que isso não é possivel. - vbquestion refere-se ao icone a ser exibido na mensagem que significa pergunta, se fosse informação usariamos vbInformation veja no link - VBA – EMITINDO MENSAGENS PERSONALIZADAS COM MSGBOX - http://www.tomasvasquez.com.br/blog/mic ... com-msgbox

E por ultimo faltou um else para executar o codigo caso o usuario confirme a execução. - Não precisamos do else uma vez que se a condição vboCancel for False a rotina continuará, caso contraio sai da rotina.
de
O inicio do seu codigo deveria ficar assim: (nao testei)

Sub apaga dados()

Msgbox "Deseja Realmente Deletar Tudo?", vbokcancel, "Confirmação")

if vbcancel then exit sub

else

codigo que deleta os dados

end if

End sub

 
Postado : 05/10/2015 7:39 pm
(@mprudencio)
Posts: 0
New Member
 

Tem razão o Mauro não sabia que era possível usar uma msg box numa variável. Aprendi mais uma, obrigado pela orientação.

 
Postado : 05/10/2015 7:46 pm