Notifications
Clear all

Apagar dados de um coluna e limpar das colunas subsequentes

4 Posts
2 Usuários
0 Reactions
1,303 Visualizações
(@necron)
Posts: 117
Estimable Member
Topic starter
 

Ola!

Tenho uma planilha formulário onde o usuario digita o codigo de produto e uma serie de informações na colunas seguintes, e gostaria de automatizar o processo, quando o usuário apagar códigos de produtos em um range na coluna "B", gostaria que as mesmas linhas das colunas subsequentes fossem apagadas automaticamente.

Tentei fazer o codigo por conta e cheguei ao seguinte resultado que funciona em partes:

Private Sub Worksheet_Change(ByVal Target As Range)


Dim KeyCells As Range
Dim LINHA As Long
Dim A As Long
Dim B As Long

Set KeyCells = Range("$B$13:$D$100")
A = ActiveCell.Row
B = ActiveCell.Row + (Selection.Rows.Count - 1)

    If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then

    For LINHA = A To B
        If Sheets("FORMULÁRIO").Range("B" & LINHA).Value = "" Then
            Range("AG" & LINHA).Value = ""
            Range("AP" & LINHA).Value = ""
            Range("AX" & LINHA).Value = ""
            Range("BM" & LINHA).Value = ""
            Range("CH" & LINHA).Value = ""
            Range("CN" & LINHA).Value = ""
        End If
    Next LINHA

    End If
    
End Sub

Esse código só funciona quando o usuário seleciona o range da coluna de cima para baixo, exemplo:

Quando o usuario seleciona o range ao contrario ele apaga as linha erradas das colunas subsequentes, então eu precisava dar um jeito de fazer um verificação para saber de qual forma foi selecionado o range, e então poder inverter as formulas das variaveis.

Obrigado

 
Postado : 14/01/2015 6:19 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Necron,

Bom Dia!

Creio que não entendi bem a sua demanda... O que você realmente quer? Quando o usuário apagar os dados existentes nas células da coluna B, você quer que os dados das outras colunas referentes a esses códigos apagados sejam também apagados? É isso? Os dados das outras colunas devem ser somente apagados ou a linha inteira excluída?

 
Postado : 14/01/2015 6:26 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Disponibilize um exemplo.

 
Postado : 14/01/2015 6:29 am
(@necron)
Posts: 117
Estimable Member
Topic starter
 

Ola Wagner!

Eu quero que a macro apenas de um Clear nas colunas predeterminadas a frente quando o usuario apagar os codigos de produtos, e para isso eu precisava encontrar qual era o numero da linha minima e máxima que o usuário selecionou.

Desculpa ter criado o topico! Mas ontem procurei no google quase o dia todo e não achei, e hoje depois que postei aqui fui dar mais uma procurada e achei a solução:

Dim lMinR As Long
Dim lMaxR As Long
With Selection
    lMinR = .Rows(1).Row
    lMaxR = lMinR + .Rows.Count - 1
End With

Fonte: http://www.ozgrid.com/forum/showthread.php?t=63248

Problema resolvido!

Mais uma vez desculpe pelo post, mas só encontrei depois de postar.

 
Postado : 14/01/2015 6:41 am