Notifications
Clear all

Dúvida com VBA (confirmação e alteração de dados em uma célu

7 Posts
4 Usuários
0 Reactions
1,587 Visualizações
(@brunsftw)
Posts: 93
Trusted Member
Topic starter
 

Bom dia!
Eu não tenho muito conhecimento em VBA e gostaria de que vocês me ajudassem a resolver um problema que eu estou tendo MUITA dificuldade no trabalho.
É o seguinte: preciso fazer com que, quando determinada pessoa digite um dado em uma determinada célula do excel, seja aberta uma caixa de diálogo (msgBox, talvez?) pedindo a confirmação da inserção dos dados inseridos.
E caso a pessoa queira editar mais tarde, seja pedido uma outra caixa de diálogo só que dessa vez com uma senha e um campo para que o usuário digite o motivo da alteração. E esse motivo seja transferido pra outra planilha, se possível com data e hora.
É isso, se vocês puderem me ajudar com esse problema eu ficaria eternamente grato haha

 
Postado : 07/04/2013 8:08 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!!

Use a Pesquisa e a Biblioteca do fórum!!!

É só adaptar!!!
viewtopic.php?f=21&t=5487

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 07/04/2013 8:19 am
(@brunsftw)
Posts: 93
Trusted Member
Topic starter
 

Obrigado, alexandrevba!

Eu fiz a seguinte adaptação:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim NewValue As Variant, OldValue As Variant
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("A1:AB300")) Is Nothing Then
NewValue = Target.Value
Application.EnableEvents = False
Application.Undo
OldValue = Target.Value
If OldValue = "" Then
Select Case MsgBox("Confirma valor digitado?", vbQuestion + vbYesNoCancel)
Case vbYes: MsgBox "Você optou por SIM", vbInformation, "Aviso!"
Case vbNo: MsgBox "Voce optou por NÃO", vbCritical, "Aviso!"
Case Else: MsgBox "Você optou por CANCELAR", vbCritical, "Aviso!"
End Select
Target.Value = NewValue
ElseIf InputBox("entre com a senha") = "alevba" Then
Target.Value = NewValue
Else: MsgBox "Você não tem permissão para alterar o conteúdo da celula.", 16, "Células Bloqueadas"
Target.Value = OldValue
End If
Application.EnableEvents = True
End If
End Sub

Ainda não está do jeito que eu queria, mas eu tô trabalhando nisso haha
O único problema é: quando aparece a caixa de diálogo pra confirmar a inserção dos dados eu clico em "não" ou em "cancelar" ele não deixa a célula vazia. Tem alguma coisa que eu estou fazendo errado?

 
Postado : 08/04/2013 6:00 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

brun, de uma olhada no link abaixo e veja se ajuda :

VBA Excel pedir autorização para alterar dados de uma célula
http://www.tomasvasquez.com.br/forum/vi ... lula#p5710

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 08/04/2013 8:29 am
(@brunsftw)
Posts: 93
Trusted Member
Topic starter
 

Bom dia!
Consegui resolver o problema do botão cancelar adaptando o código dessa maneira:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim NewValue As Variant, OldValue As Variant, resultado As VbMsgBoxResult
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("A1:F10")) Is Nothing Then
NewValue = Target.Value
Application.EnableEvents = False
Application.Undo
OldValue = Target.Value
If OldValue = "" Then
resultado = MsgBox("Tem certeza que deseja prosseguir com esta ação?", vbYesNo, "Tomando uma decisão")
If resultado = vbYes Then
MsgBox "Você acaba de confirmar a ação"
Target.Value = NewValue
Else
MsgBox "Você acaba de recusar a ação"
End If
ElseIf InputBox("Digite a senha para alterar o valor da célula") = "1234" Then
Target.Value = NewValue
Else: MsgBox "Você não tem permissão para alterar o conteúdo da celula.", 16, "Células Bloqueadas"
Target.Value = OldValue
End If
Application.EnableEvents = True
End If
End Sub

Agora, quando eu aplico aquela validação de dados do excel, em que o usuário deve digitar um valor que esteja no intervalo que eu estabeleci, aparece o seguinte erro: Erro em tempo de execução '1004' O método 'Undo do objeto '_Application' falhou.
Alguém saberia me orientar sobre como resolver esse problema?
Obrigado!!

 
Postado : 09/04/2013 5:43 am
(@fpp1702)
Posts: 6
Active Member
 

Olá pessoal, alguém consegue resolver o problema sobre Application.Undo em células com validação de dados?
Obrigado.

 
Postado : 28/06/2018 5:04 am
(@klarc28)
Posts: 971
Prominent Member
 

Por favor, aperte o botão editar e modifique o título de seu tópico, retirando as palavras:

Dúvida com VBA

E os parênteses.

 
Postado : 28/06/2018 7:23 am