Notifications
Clear all

Limpar células específicas através do msgbox

5 Posts
3 Usuários
0 Reactions
938 Visualizações
(@jonatasjho)
Posts: 0
New Member
Topic starter
 

Olá Prezados,

Acompanho esse Fórum faz um tempo, mas apenas hoje fiz o meu cadastro. Estou com um problema e não encontrei solução neste fórum, nem em outros sites.
Obs: Segue a planilha em anexo, porem algumas funcionalidades não irão funcionar, pois alterei os valores, para preservar a identidade dos dados.

*Na minha planilha tenho uma macro que deve buscar a palavra "Verdadeiro" em uma coluna específica, e em seguida limpar as células específicas daquela linha.
O código esta funcionando, porem ele só limpa as células da primeira linha encontrada, as linhas a baixo ele não limpa. Segue o código a baixo:

Sub Excluir1()

'Procura o valor verdadeiro dentro das linhas 13 a 82.
For Lin = 13 To 82
If Cells(Lin, 16).Value = "Verdadeiro" Then
ActiveSheet.Range(Cells(Lin, 2), Cells(Lin, 10)).Select
Selection.ClearContents

'Desmarca todas as caixas.
 Range("P12:P82").Select
 ActiveWindow.SmallScroll Down:=-57
 Selection.FormulaR1C1 = "FALSE"
End If

Next Lin

Cells(1, 1).Select

End Sub

*Estou criando também uma msgbox que questiona se o usuário tem certeza que deseja excluir os itens selecionados. Assim que o código acima estiver pronto, gostaria de adiciona-lo nesta msgbox:

Sub ExcluirTeste()

Dim resp As VbMsgBoxResult
Dim itens As String

itens = Range("P83").Value
resp = MsgBox("Tem certeza que deseja apagar este(s) " + itens + " iten(s)?", vbYesNo, "Apagar Itens")

'Quando clicar em Sim.
If (resp = vbYes) Then
MsgBox "Iten(s) apagado(s) com sucesso.", vbInformation, "Apagar Itens"

End If

End Sub

Desde já agradeço.

 
Postado : 31/10/2017 7:52 am
(@wzxnet7)
Posts: 0
New Member
 

Bom dia Jonatas.
O código para na primeira linha pois logo após encontrar o primeiro verdadeiro em (lin,16) ele encontra a instrução:
'Desmarca todas as caixas.
Range("P12:P82").Select - Selection.FormulaR1C1 = "FALSE" que torna falso todas as outras células da coluna "P" logo... não haverá mais nenhum verdadeiro depois dessa instrução.
Quanto ao msgbox vc pode criar a macro do msgbox e essa macro vai chamar a excluir1 caso a resposta seja ok com um if dizendo: if ok then call excluir1.
Espero ter sido claro
Qualquer duvida posta ai.

 
Postado : 31/10/2017 8:40 am
(@wzxnet7)
Posts: 0
New Member
 

Eu costumo apontar o módulo e a macro a ser executada assim:

If (resp = vbYes) Then
Módulo8.Excluir1
MsgBox "Iten(s) apagado(s) com sucesso.", vbInformation, "Apagar Itens"

End If
 
Postado : 31/10/2017 8:46 am
(@xlarruda)
Posts: 0
New Member
 

Segue minha contribuição...

Abrç!

 
Postado : 31/10/2017 8:59 am
(@jonatasjho)
Posts: 0
New Member
Topic starter
 

Usei a solução do xlarruda.
Mas obrigado a todos pela ajuda, é sempre algo simples, e eu quebrando a cabeça.

 
Postado : 31/10/2017 11:06 am