Notifications
Clear all

Macro para apagar dados

7 Posts
2 Usuários
0 Reactions
1,787 Visualizações
(@rilton)
Posts: 232
Estimable Member
Topic starter
 

Prezados,

Criei uma macro que apaga os dados de uma planilha quando um determinado parâmetro não estiver ok. O problema é que a macro não apaga os dados. vejam ela abaixo, vocês sabem me dizer onde está o erro:

apaga1 = Range("H14:H100").Value
                apaga2 = Range("J14:J100").Value
                apaga3 = Range("K14:K100").Value
                
                


If Range("O224").Value = "Vazio" Then
                MsgBox "  Antes de iniciar, defina o Estado, Frete e Condição de Pagamento", vbCritical + vbOKOnly, "Atenção"
               
                If vbOKOnly = 0 Then
                    
                apaga1 = ""
                apaga2 = ""
                apaga3 = ""
    
                End If
            End If
 
Postado : 03/07/2014 9:06 am
(@edcronos)
Posts: 1006
Noble Member
 

Tente assim

dim apaga1 as range,apaga2 as range,apaga3 as range
  set  apaga1 = Range("H14:H100")
  set  apaga2 = Range("J14:J100")
  set   apaga3 = Range("K14:K100")


If Range("O224").Value = "Vazio" Then
      MsgBox "  Antes de iniciar, defina o Estado, Frete e Condição de Pagamento", vbCritical + vbOKOnly, "Atenção"
               
 If vbOKOnly = 0 Then            
                apaga1 = ""
                apaga2 = ""
                apaga3 = ""
 End If
 End If

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 03/07/2014 9:16 am
(@rilton)
Posts: 232
Estimable Member
Topic starter
 

Edcronos, boa tarde.

coloquei está macro no evento change de uma das planilha, para que quando ela fosse alterada executava a macro. porém quando eu altero a planilha e a condição If Range("O224").Value = "Vazio" é verdadeira a macro fica num looping infinito, ou seja, todo hora fica aparecendo a msgbox. tem como resolver isso?

 
Postado : 03/07/2014 9:48 am
(@edcronos)
Posts: 1006
Noble Member
 

posta a macro completa

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 03/07/2014 10:04 am
(@rilton)
Posts: 232
Estimable Member
Topic starter
 

segue a macro completa:

Private Sub Worksheet_Change(ByVal Target As Range)



Dim apaga1 As Range, apaga2 As Range, apaga3 As Range
  Set apaga1 = Range("H14:H100")
  Set apaga2 = Range("J14:J100")
  Set apaga3 = Range("K14:K100")


If Range("O224").Value = "Vazio" Then
      MsgBox "  Antes de iniciar, defina o Estado, Frete e Condição de Pagamento", vbCritical + vbOKOnly, "Atenção"
               
If vbOKOnly = 0 Then
                apaga1 = 0
                apaga2 = 0
                apaga3 = 0
                Range("A1").Select
                GoTo sai
End If
End If

End Sub
 
Postado : 03/07/2014 11:02 am
(@edcronos)
Posts: 1006
Noble Member
 

bem, não entendi muito bem vc deixar o evento change para a planilha toda, mas...

no inicio
Application.EnableEvents = False

no fim
Application.EnableEvents = true

o certo seria o evento change está apenas em uma faixa da planilha para melhor controle

até

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 03/07/2014 11:22 am
(@rilton)
Posts: 232
Estimable Member
Topic starter
 

Perfeito, funcionou!!

obrigado!

 
Postado : 03/07/2014 11:51 am