Página 1 de 1

Limpar valores específicos e subir células preenchidas

Enviado: 01 Set 2019 às 11:55
por Laertenovoa
Preciso de um código que identifique as células que contenham um "ok" na coluna G e limpe as células das colunas C, D, E, H e J dessa linha.

Quando essas células forem limpas, a linha ficará em branco e as células que estejam preenchidas (que não continham o "ok") precisam subir para o lugar das que foram limpas.

Não tenho muito conhecimento em VBA, porém ajudaria muito aqui na empresa onde trabalho.

Re: Limpar valores específicos e subir células preenchidas

Enviado: 01 Set 2019 às 13:40
por eduardogrigull
Deveria funcionar o código abaixo, nao tem como testar, pois a planilha está bloqueada, e nao é possível executar essa macro em uma planilha bloqueada.
Código: Selecionar todos
Sub LimparDados()
Dim UltimaLinha As Integer

UltimaLinha = Sheet1.Cells(Sheet1.Rows.Count, 3).End(xlUp).Row

For i = 8 To UltimaLinha
    
    If UCase(Sheet1.Cells(i, 7).Value) = "OK" Then
    
        Sheet1.Range("C" & i & ":J" & i).Delete xlShiftUp
        UltimaLinha = UltimaLinha - 1
        
    End If
    
        
Next


End Sub

Re: Limpar valores específicos e subir células preenchidas

Enviado: 02 Set 2019 às 07:42
por Laertenovoa
Putz, não vi que estava bloqueada. Testei o código, porém ele exclui as linhas que estão com OK e tem formulas nas células das colunas F e I que conforme for limpando a planilha vão acabar sumindo. Precisava que apagasse mas mantivesse as fórmulas. Sera que tem como?

Segue anexa a planilha sem senha.


Valeu

Limpar valores específicos e subir células preenchidas

Enviado: 02 Set 2019 às 13:56
por eduardogrigull
Esse código funcionou aqui, tente:
Código: Selecionar todos
Sub LimparDados()
Dim UltimaLinha As Integer

UltimaLinha = Sheet1.Cells(Sheet1.Rows.Count, 3).End(xlUp).Row

i = 8
While i <= UltimaLinha
   
    If UCase(Sheet1.Cells(i, 7).Value) = "OK" Then
   
        Sheet1.Range("C" & i & ":V" & i).Delete xlUp
        UltimaLinha = UltimaLinha - 1
       
    Else
        i = i + 1
    End If
    
       
Wend


End Sub
Aqui manteve a fórmula, e apagou as linhas com o "ok"

Re: Limpar valores específicos e subir células preenchidas

Enviado: 03 Set 2019 às 01:22
por Laertenovoa
Eduardo, só mais uma coisa. Quando executo a macro, as linhas do final perdem a configuração (vê a partir da linha 73 como ficou após executar a macro).

É possível manter a configuração e as fórmulas das linhas do final?

Muito obrigado!!