Ir ao conteúdo

Unificar linha duplicada em relação a uma célula


Posts recomendados

Postado

Bom dia pessoal,

 

Tenho uma planilha onde uso a formatação condicional de dados duplicados, sempre quando algum dado da coluna H está duplicado a fonte fica vermelha.

Para implementar eu preciso que sempre que os dados da H estejam duplicados (ou coloridos também serve), a linha inteira seja unificada em 1 só.

 

Eu coloquei a planilha TESTE anexada aqui, não está com todos os dados porque contém informações comerciais, mas dá para ser um modelo.

Modelo - Follow-up.zip

Postado

 

Tenho uma planilha onde uso a formatação condicional de dados duplicados, sempre quando algum dado da coluna H está duplicado a fonte fica vermelha.

Para implementar eu preciso que sempre que os dados da H estejam duplicados (ou coloridos também serve), a linha inteira seja unificada em 1 só.

 

Olá, Felipe.

O que você quer dizer com o texto acima que pintei de azul?

Seria estender a Formatação Condicional para as demais colunas da tabela mantendo o critério de duplicidade na coluna "H" ?

 

 

Postado

 

 

Tenho uma planilha onde uso a formatação condicional de dados duplicados, sempre quando algum dado da coluna H está duplicado a fonte fica vermelha.

Para implementar eu preciso que sempre que os dados da H estejam duplicados (ou coloridos também serve), a linha inteira seja unificada em 1 só.

 

Olá, Felipe.

O que você quer dizer com o texto acima que pintei de azul?

Seria estender a Formatação Condicional para as demais colunas da tabela mantendo o critério de duplicidade na coluna "H" ?

 

 

 

 

 

você está ligado q o Excel tem o comando Remover Duplicadas na aba Dados?

 

 

Vamos esclarecer.

 

Cada LINHA é um ciclo de compras, tem um numero de pedido (que nunca em condiçõeos normais se repete) e os outros dados, material, datas, quantidades, nome de fornecedor.

 

O que quero: Quando esse numero de pedido repetir, todo o ciclo de compra (a linha) seja unificada em 1 novamebnte, ou eliminada a repetição, tanto faz. Sempre levando em consideração o numero que fca na coluna H.

Postado

Se você acionar o comando Remover Duplicatas o Excel eliminará toda a linha p/ você sem a necessidade de nenhum comando extra.

 

Para um vídeo rápido de como se faz você tem o exemplo abaixo em inglês, mas q só de assistir você vai entender do mesmo jeito sem dominar a língua bretã.

 

Postado

DJunqueira

 

Não serve, a eliminação é com seleção inteira, ele elimina outros dados.

 

 

Preciso que o dado levado em conta para eliminação da linha seja da coluna H.

Qualque outro dado pode ser duplicado que não atrapalha, mas se a H duplicar, toda a linha deve ser condenada.

Postado

Felipe,

 

Bom dia !!!

 

Tentando ajudar meus amigos do fórum a compreender sua necessidade ...

 

As linhas 14 à 18 são duplicatas, conforme coluna "H", mas identifiquei que as colunas "J", "M" e "P" contém dados diferentes, certo ?

 

Qual a linha que deve permanecer na planilha e/ou quais linhas (14 à 18) deverão ser excluídas ?

 

Quando você fala em unificar, só vejo a possibilidade de unificar a coluna "P" efetuando uma somatória ...

 

Dê retorno ...

Postado

Vagner

 

Bom dia,

 

Ainda não está sendo entendido:

 

Veja cada linha dessa como 1 processo apenas cujo o numero de identificação de cada processo está na coluna H.

Quando esse numero de identificação da coluna H aparecer duas vezes, toda a linha dele também será idêntica, isso é uma regra. O que quero é eliminar a repetição, dessa forma "unificar" a duplicação, tornando uma só novamente. Isso tudo do jeito rápido e automático do Excel.

Postado

Felipe, fiz uma sugestao:

A macro deleta a (s) linha(s) (inteira), caso o valor da celula (da coluna H), for igual a anterior, mantendo somente 1 (um) valor de (H) distinto. 

Cole em um modulo:

Sub Proc_Duplicados()
    Dim cel As Variant
    Dim rng As Range
    Dim ws As Worksheet
    Set ws = Sheets("plan1") 'altere aqui de acordo c/ nome sua plan
    Set rng = ws.Range("h4:h" & Cells(Rows.Count, 8).End(xlUp).Row)
    For Each cel In rng
        If Application.WorksheetFunction.CountIf(rng, cel) > 1 Then
            cel.Select
bk:
            If ws.Cells(ActiveCell.Row + 1, "h").Value = cel Then
                ws.Cells(ActiveCell.Row + 1, "h").EntireRow.Delete
                GoTo bk
            Else
            End If
        End If
    Next
End Sub

 

Pra ficar 'tomatico' quando. alterar alguma celula: chame a macro no evento:

 

Private Sub Worksheet_Change(ByVal Target As Range)
Call Proc_Duplicados
End Sub

 abx.

Postado

Basole


 

Era exatamente ISSo que estou querendo, kkkkkkkkkkk.

Não testei ainda porque não estou em casa.

 

Vou me enrolar um pouco, eu fiz aquela programação VBA acima e não vou conseguir encaixar essa junto.

 

Mas obrigado, assim que testar eu te retorno.

Postado

Felipe, pelo método q lhe sugeri você pode selecionar a coluna H p/ somente ela ser pesquisada.

Te garanto q pode ser feito desta forma, mas se você realmente quer complicar sua vida...

Postado

Felipe, fiz uma sugestao:

A macro deleta a (s) linha(s) (inteira), caso o valor da celula (da coluna H), for igual a anterior, mantendo somente 1 (um) valor de (H) distinto. 

Cole em um modulo:

Sub Proc_Duplicados()

    Dim cel As Variant

    Dim rng As Range

    Dim ws As Worksheet

    Set ws = Sheets("plan1") 'altere aqui de acordo c/ nome sua plan

    Set rng = ws.Range("h4:h" & Cells(Rows.Count, 8).End(xlUp).Row)

    For Each cel In rng

        If Application.WorksheetFunction.CountIf(rng, cel) > 1 Then

            cel.Select

bk:

            If ws.Cells(ActiveCell.Row + 1, "h").Value = cel Then

                ws.Cells(ActiveCell.Row + 1, "h").EntireRow.Delete

                GoTo bk

            Else

            End If

        End If

    Next

End Sub

 

Pra ficar 'tomatico' quando. alterar alguma celula: chame a macro no evento:

 

Private Sub Worksheet_Change(ByVal Target As Range)

Call Proc_Duplicados

End Sub

 abx.

 

Cara, pode aplicar o VBA na planilha teste e me enviar?

Não estou conseguindo juntar com os códigos já existentes.

Felipe, pelo método q lhe sugeri você pode selecionar a coluna H p/ somente ela ser pesquisada.

Te garanto q pode ser feito desta forma, mas se você realmente quer complicar sua vida...

 

Se selecionar só a H só apaga a H. E isso não adianta para mim.

Nunca duvide do VBA.

Postado

Fiz algumas alteraçoes no codigo q postei anteriormente

Pois somente duplicados consecutivos estava sendo removidos:

 

Sub Proc_Dupli_Deleta()
'  Macro identifica valores duplic. na coluna "H" e deleta a linha inteira
    Dim cel As Variant
    Dim rng As Range
    Dim ws As Worksheet
    Dim i, ul As Long
    Application.ScreenUpdating = False
    Set ws = Sheets("plan1")    'AQUI:  Altere de acordo c/ nome sua plan
    ul = ws.Cells(Rows.Count, 8).End(xlUp).row
    Set rng = ws.Range("h4:h" & ul)
    For Each cel In rng
        If Application.WorksheetFunction.CountIf(rng, cel) > 1 Then
            cel.Select
            For i = ActiveCell.row + 1 To ul
                If ws.Cells(i, "h").Value = cel Then
                    ws.Cells(i, "h").EntireRow.Delete    ' del linha duplicada
                    i = ActiveCell.row
                Else
                End If
                If Application.WorksheetFunction.CountIf(rng, cel) = 1 Then GoTo pxl
            Next
        Else
pxl:
        End If
    Next
    Application.ScreenUpdating = True
End Sub

'Em anexo a planilha teste c/ a codificacao e a macro automatica.

'* Como o processo está automatico, ao digitar, ou colar um dado que já existe (na coluna H), ao piscar de olhos esse 'valor

'será deletado.

'Caso queira deixar manualmente, desabilite a macro no evento :Private Sub Worksheet_Change(ByVal Target As Range) 'e coloque um atalho de teclado ( Alt + F8 -> Em opções ), para executar a macro. 

 

'abx.

  

Modelo - Follow-up-v2.zip

Postado

Felipe, pelo método q lhe sugeri você pode selecionar a coluna H p/ somente ela ser pesquisada.

Te garanto q pode ser feito desta forma, mas se você realmente quer complicar sua vida...

 

Ficou perfeito com o VBA.

Veja a forma que o Basole sugeriu no anexo.

 

Obrigado pela ajuda.

 

Fiz algumas alteraçoes no codigo q postei anteriormente

Pois somente duplicados consecutivos estava sendo removidos:

 

Sub Proc_Dupli_Deleta()

'  Macro identifica valores duplic. na coluna "H" e deleta a linha inteira

    Dim cel As Variant

    Dim rng As Range

    Dim ws As Worksheet

    Dim i, ul As Long

    Application.ScreenUpdating = False

    Set ws = Sheets("plan1")    'AQUI:  Altere de acordo c/ nome sua plan

    ul = ws.Cells(Rows.Count, 8).End(xlUp).row

    Set rng = ws.Range("h4:h" & ul)

    For Each cel In rng

        If Application.WorksheetFunction.CountIf(rng, cel) > 1 Then

            cel.Select

            For i = ActiveCell.row + 1 To ul

                If ws.Cells(i, "h").Value = cel Then

                    ws.Cells(i, "h").EntireRow.Delete    ' del linha duplicada

                    i = ActiveCell.row

                Else

                End If

                If Application.WorksheetFunction.CountIf(rng, cel) = 1 Then GoTo pxl

            Next

        Else

pxl:

        End If

    Next

    Application.ScreenUpdating = True

End Sub

'Em anexo a planilha teste c/ a codificacao e a macro automatica.

'* Como o processo está automatico, ao digitar, ou colar um dado que já existe (na coluna H), ao piscar de olhos esse 'valor

'será deletado.

'Caso queira deixar manualmente, desabilite a macro no evento :Private Sub Worksheet_Change(ByVal Target As Range) 'e coloque um atalho de teclado ( Alt + F8 -> Em opções ), para executar a macro. 

 

'abx.

  

 

Perfeito!

Obrigado, a planilha e o VBA está cada vez mais potente. kkkkkkkkkkkkk.

Automatizando!

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!