Bom dia,
Sugiro incluir o seguinte código no evento Change da sua planilha:
Private Sub Worksheet_Change(ByVal Target As Range)
'Se a célula apagada está no intervalo A1:F10
If Not Intersect(Target, [A1:F10]) Is Nothing And Target.Text = "" Then
'Apaga a linha correspondente
Range(Cells(Target.Row, 1), Cells(Target.Row, 6)).ClearContents
End If
End Sub
Abraço
Boa tarde, muito obrigada pela ajuda.
Consegui ajuda em um fórum americano que deu certo, porém está demorando muito e parece-me que as colunas com formatação condicional ficaram bugadas após limpar o conteúdo delas (principalmente as que continham datas), o que me passaram foi este:
Sub Botão1_Clique()
Dim vazia As Range, número_da_linha As Integer
Application.ScreenUpdating = False
número_da_linha = 4
For Each vazia In Range("B4:B3000")
If vazia.FormulaR1C1 = "" Then Range(Range("B" & número_da_linha) _
, Range("B" & número_da_linha).Offset(, 9)).ClearContents
número_da_linha = número_da_linha + 1
Next vazia
número_da_linha = 4
For Each vazia In Range("D4:D3000")
If vazia.FormulaR1C1 = "" Then Range(Range("D" & número_da_linha).Offset(, -2) _
, Range("D" & número_da_linha).Offset(, 7)).ClearContents
número_da_linha = número_da_linha + 1
Next vazia
número_da_linha = 4
For Each vazia In Range("E4:E3000")
If vazia.FormulaR1C1 = "" Then Range(Range("E" & número_da_linha).Offset(, -3) _
, Range("E" & número_da_linha).Offset(, 6)).ClearContents
número_da_linha = número_da_linha + 1
Next vazia
número_da_linha = 4
For Each vazia In Range("F4:F3000")
If vazia.FormulaR1C1 = "" Then Range(Range("F" & número_da_linha).Offset(, -4) _
, Range("F" & número_da_linha).Offset(, 5)).ClearContents
número_da_linha = número_da_linha + 1
Next vazia
número_da_linha = 4
For Each vazia In Range("G4:G3000")
If vazia.FormulaR1C1 = "" Then Range(Range("G" & número_da_linha).Offset(, -5) _
, Range("G" & número_da_linha).Offset(, 4)).ClearContents
número_da_linha = número_da_linha + 1
Next vazia
número_da_linha = 4
For Each vazia In Range("H4:H3000")
If vazia.FormulaR1C1 = "" Then Range(Range("H" & número_da_linha).Offset(, -6) _
, Range("H" & número_da_linha).Offset(, 3)).ClearContents
número_da_linha = número_da_linha + 1
Next vazia
número_da_linha = 4
For Each vazia In Range("I4:I3000")
If vazia.FormulaR1C1 = "" Then Range(Range("I" & número_da_linha).Offset(, -7) _
, Range("I" & número_da_linha).Offset(, 2)).ClearContents
número_da_linha = número_da_linha + 1
Next vazia
número_da_linha = 4
For Each vazia In Range("J4:J3000")
If vazia.FormulaR1C1 = "" Then Range(Range("J" & número_da_linha).Offset(, -8) _
, Range("J" & número_da_linha).Offset(, 1)).ClearContents
número_da_linha = número_da_linha + 1
Next vazia
número_da_linha = 4
For Each vazia In Range("K4:K3000")
If vazia.FormulaR1C1 = "" Then Range(Range("K" & número_da_linha).Offset(, -9) _
, Range("K" & número_da_linha)).ClearContents
número_da_linha = número_da_linha + 1
Next vazia
Range("C4").FormulaR1C1 = "=IF(RC[-1]=1, ""Cablena VW"", IF(RC[-1]=2, ""Cablena YH"", IF(RC[-1]=3, ""Capri"", IF(RC[-1]=4, ""Sakaguchi Industrial"", IF(RC[-1]=5, ""Metalurgica Sakaguchi"", IF(RC[-1]=6, ""Winflex"", IF(RC[-1]=7, ""Littelfuse"",IF(RC[-1]=8, ""Loopmol"", IF(RC[-1]=9, ""ITW"", IF(RC[-1]=10, ""Newtoy"", IF(RC[-1]=11, ""Kluber"")))))))))))"
Range("C4").Select
Selection.AutoFill Destination:=Range("C4:C" & número_da_linha), Type:=xlFillDefault
Application.ScreenUpdating = True
End Sub
Estou enviando também a planilha-modelo para que vocês possam entender do que se trata.
Na coluna C existe uma fórmula que não deveria ser apagada...
Link do arquivo para referência: http://temp-share.com/show/2gFH3QJE8
saudações.
"Only those who will risk going too far can possibly find out how far one can go."
Postado : 18/07/2013 12:49 pm