Notifications
Clear all

Macro Limpar Conteúdo Excel VBA

8 Posts
3 Usuários
0 Reactions
1,100 Visualizações
(@nayrajh)
Posts: 0
New Member
Topic starter
 

Boa tarde,

Gostaria que toda vez que aparecer na minha planilha na Coluna G a data: 30/12/1899 que na célula onde aparecesse esse conteúdo, o mesmo fosse limpado.
Obs: não quero excluir a linha.
Por exemplo, na celula G207 apareceu essa data, quero que imediatamente ela apagasse e ficasse vazia mas a linha não fosse excluída e sim que continuasse com as outras informações.

Obrigada!

 
Postado : 12/05/2016 11:19 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

NayraJH,

Boa tarde!

Bem fácil de resolver seu problema... mas... o que faz essa data "aparecer" nas células da coluna G? qual é o precesso que dispara esse "aparecimento"?

 
Postado : 12/05/2016 11:29 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Coloque no módulo da planilha:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim celula As Range
    For Each celula In Target.Cells
        With celula
            If .Column = 7 And VBA.IsNumeric(.Value) < 0 Then
                If .Value < 0 Or VBA.Year(.Value) = 1899 Then
                    .ClearContents
                End If
            End If
        End With
    Next celula
End Sub
 
Postado : 12/05/2016 12:15 pm
(@nayrajh)
Posts: 0
New Member
Topic starter
 

Bom dia, Wagner.

Nessa coluna (G), as data aparecem para mim dessa forma: 11.02.2016. Então eu converto tudo o que possui . para / nessa coluna dessa forma:

'trocando os "." das datas SAP para "/"
Columns("G:G").Select
Selection.Replace What:=".", Replacement:="/", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

'Invertendo a posição do mês com o dia que foi invertido no código anterior

Range("G2:G3000").Select
Range(Selection, Selection.End(xlDown)).Select
For Each cell In Selection
cell.Value = Day(cell.Value) & "/" & Month(cell.Value) & "/" & Year(cell.Value)
Next cell

em seguida essa data 30/12/1899 aparecem em alguns lugares da planilha pra mim, por isso preciso que seja limpado onde elas aparecem...

 
Postado : 13/05/2016 6:42 am
(@nayrajh)
Posts: 0
New Member
Topic starter
 

Bom dia Fernando,

a última coisa que tenho no meu módulo é o seguinte:

For i = Cells(Rows.Count, 9).End(xlUp).Row To 3 Step -1
If Cells(i, 9).Value <= -1 Then
Cells(i, 9).EntireRow.Delete
End If
Next

eu preciso que a sugestão que vc me mandou seje colocado logo após esse comando...como faco pra colocar nesse mesmo modulo? copiei e colei apos esse comando e não consegui nada..

Desculpe mas sou iniciante em VBA e sou bem burrinha :(

 
Postado : 13/05/2016 6:51 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Oi Nayra, td bom? Tem como publicar o arquivo? Eu faço direto nele, pra você !

Se não puder, devido a confidencialidade, me envie no [email protected]

Obrigado

 
Postado : 16/05/2016 6:52 am
(@nayrajh)
Posts: 0
New Member
Topic starter
 

Boa tarde! Será que vc pode me ajudar com o link abaixo que publiquei? E a última coisa que postei :(
http://www.hardware.com.br/comunidade/v ... ost7510758

 
Postado : 27/07/2016 2:51 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia Nayra, nossa, passaram mais de 2 meses já... acabei de ver que vc respondeu aqui... ainda precisa de ajuda ?

 
Postado : 03/08/2016 8:12 am