Ir para conteúdo
Fórum Script Brasil
  • 0

Comparação entre Planilhas


Odlande Borges

Pergunta

Boa noite, amigos.

Tenho duas planilhas - Caixa e Folha.

Ambas as planilhas possuem as mesmas colunas, dentre as quais: Contrato, Nome, CPF, Valor.

Preciso percorrer toda as linhas da planilha Caixa, verificando, por CPF, por exemplo, se possuem os mesmos contratos na planilha Folha.

Caso encontre, na planilha Caixa, algum registro que não esteja na planilha Folha, essa linha deverá ser destacada em verde, na planilha Caixa.

Na mesma lógica, caso na planilha Folha, haja algum registro que não esteja na planilha Caixa, a linha deverá ser destacada em vermelho.

Por último, caso haja o mesmo Contrato, para o mesmo CPF, em ambas as planilhas, porém o Valor do Contrato tenha sido alterado, a linha deverá ser destacada em amarelo, na planilha Caixa.

Creio que seja uma solução, razoavelmente, simples, porém estou há algum tempo sem prática, e se algum de vocês puder me ajudar, ficarei bastante grato.

Abrc.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Caro Alyson, obrigado pelo retorno.

Estive um pouco atarefado esse fim de ano devido as demandas, por isso não retornei antes..

Não, não é freelance!

Apenas demanda do setor, eu procuro agilizar as demandas o máximo possível, porém me deparei com essa dúvida.

Tentei de algumas formas com a ajuda de IA, porém não prosperou. O entendimento humano, geralmente, é mais assertivo.

Estou postando um print com a lógica para ver se ajuda um pouco.

Fiquem a vontade para sugerir.

Obs. A planilha Caixa é a principal.

Desde já... muito grato a todos que puderem contribuir.

TratConsig.JPG

Segue planilha.

5 minutos atrás, Odlande Borges disse:

Caro Alyson, obrigado pelo retorno.

Estive um pouco atarefado esse fim de ano devido as demandas, por isso não retornei antes..

Não, não é freelance!

Apenas demanda do setor, eu procuro agilizar as demandas o máximo possível, porém me deparei com essa dúvida.

Tentei de algumas formas com a ajuda de IA, porém não prosperou. O entendimento humano, geralmente, é mais assertivo.

Estou postando um print com a lógica para ver se ajuda um pouco.

Fiquem a vontade para sugerir.

Obs. A planilha Caixa é a principal.

Desde já... muito grato a todos que puderem contribuir.

TratConsig.JPG

Não consigo anexar a planilha.

Link para o comentário
Compartilhar em outros sites

  • 0

Consultei o Copilot, e ele montou o seguinte código VBA:
 

Sub VerificarPlanilhas()

    Dim wsCaixa As Worksheet
    Dim wsRH As Worksheet
    Dim rngCaixa As Range
    Dim rngRH As Range
    Dim celCaixa As Range
    Dim celRH As Range
    Dim cpfCaixa As String
    Dim cpfRH As String
    Dim valorCaixa As Double
    Dim valorRH As Double
    Dim encontrado As Boolean

    ' Definir as planilhas
    Set wsCaixa = ThisWorkbook.Sheets("Caixa")
    Set wsRH = ThisWorkbook.Sheets("RH")

    ' Definir os intervalos de dados
    Set rngCaixa = wsCaixa.Range("A2", wsCaixa.Cells(wsCaixa.Rows.Count, 1).End(xlUp))
    Set rngRH = wsRH.Range("A2", wsRH.Cells(wsRH.Rows.Count, 1).End(xlUp))

    ' Limpar formatação de cor existente
    rngCaixa.Interior.ColorIndex = xlNone
    rngRH.Interior.ColorIndex = xlNone

    ' Verificar CPFs na planilha Caixa
    For Each celCaixa In rngCaixa
        cpfCaixa = celCaixa.Value
        valorCaixa = celCaixa.Offset(0, 1).Value
        encontrado = False

        For Each celRH In rngRH
            If celRH.Value = cpfCaixa Then
                encontrado = True
                valorRH = celRH.Offset(0, 1).Value

                If valorCaixa <> valorRH Then
                    celCaixa.Interior.Color = RGB(255, 255, 0) ' Amarelo
                    celCaixa.Offset(0, 1).Interior.Color = RGB(255, 255, 0) ' Amarelo
                    celRH.Interior.Color = RGB(255, 255, 0) ' Amarelo
                    celRH.Offset(0, 1).Interior.Color = RGB(255, 255, 0) ' Amarelo
                End If

                Exit For
            End If
        Next celRH

        If Not encontrado Then
            celCaixa.Interior.Color = RGB(0, 255, 0) ' Verde
            celCaixa.Offset(0, 1).Interior.Color = RGB(0, 255, 0) ' Verde
        End If
    Next celCaixa

    ' Verificar CPFs na planilha RH
    For Each celRH In rngRH
        cpfRH = celRH.Value
        encontrado = False

        For Each celCaixa In rngCaixa
            If celCaixa.Value = cpfRH Then
                encontrado = True
                Exit For
            End If
        Next celCaixa

        If Not encontrado Then
            celRH.Interior.Color = RGB(255, 0, 0) ' Vermelho
            celRH.Offset(0, 1).Interior.Color = RGB(255, 0, 0) ' Vermelho
        End If
    Next celRH

    MsgBox "Verificação concluída!"

End Sub

O código funciona, mas apresentou resultado diferente no caso da Vilma - renda mensal R$ 101,27. Foi pintado de amarelo por constar nas duas planilhas mas com valores divergentes. O critério é muito vago, se a Vilma  retirou do caixa R$ 10,00; R$ 10,00; R$ 10,00, e a planilha do RH constar apenas um registro de R$ 10,00, o código não será capaz de pintar coisa alguma.

Captura de tela 2025-01-07 223825.png

Captura de tela 2025-01-07 223855.png

Link para o comentário
Compartilhar em outros sites

  • 0

Boa noite, Frank.

Muito grato pelo retorno.

Ainda não consegui resolver.

Observem que a planilha diz respeito a valores contratados junto a instituição financeira(CX), a ser comparada com outra planilha já existente(RH), oriunda do sistema de folha.

Assim sendo, o codigo conseguiu identificar apenas os registros novos (VERDE), já os amarelos 9ALTERADOS) e vermelho (APENAS EM RH), não foram coloridos.

Se alguém puder contribuir um pouco mais ficarei muito grato.

O período de fechamento se aproxima e já começo sentir tensão.

Obrigado.

Link para o comentário
Compartilhar em outros sites

  • 0
11 horas atrás, Odlande Borges disse:

Boa noite, Frank.

Muito grato pelo retorno.

Ainda não consegui resolver.

Observem que a planilha diz respeito a valores contratados junto a instituição financeira(CX), a ser comparada com outra planilha já existente(RH), oriunda do sistema de folha.

Assim sendo, o codigo conseguiu identificar apenas os registros novos (VERDE), já os amarelos 9ALTERADOS) e vermelho (APENAS EM RH), não foram coloridos.

Se alguém puder contribuir um pouco mais ficarei muito grato.

O período de fechamento se aproxima e já começo sentir tensão.

Obrigado.

O problema é criar o critério. Não sei o que devo procurar na primeira e na segunda planilhas. Se ambas usassem uma chave tipo CPF+PagamentoMês, aí dá para pintar uma chave presente numa planilha e ausente na outra, ou pintar de cor diferente se for de valores diferentes, ou não pintar se as chaves e valores forem iguais. No seu caso, você repete o CPF várias vezes com valores diferentes, por exemplo Vilma 10, Vilma 10, Vilma 10, e na outra planilha tenho Vilma 15, não dá para fazer nada, não dá saber qual a relação do primeiro dado com o dado na outra planilha. Na teoria do banco de dados, o nome disso é chave primária, sem isso é impossível fazer qualquer tipo de trabalho.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,6k
×
×
  • Criar Novo...