Ir ao conteúdo
  • Cadastre-se
Leonardo Meshoes

RESOLVIDO Relatório com Macro no Excel

Recommended Posts

Trabalho na minha empresa com um sistema que gera um relatório muito extenso, conta uma proposta por linha, e preenche esses dados que vai até as colunas BB.

 

Foi identificado que alguns funcionários estavam fazendo correções sem as devidas anotações em sistema, então um relatório que foi gerado ontem, comparando com um relatório que foi gerado hoje, podemos ver onde foram feitas as alterações.

 

Na planilha de exemplo, na proposta 5, coloquei o nome da mãe errado no primeiro relatório propositalmente, e corrigido na segunda, para que vocês entendam o que preciso.

 

 

Minhas dúvidas:

 

É possível, saber o destino em que foram feitas as alterações, quando existam mais de uma? Por exemplo: Célula AB3.  (tentei com a formula corresp e endereço, mas só estava identificando a primeira, precisava que identificasse todos os campos onde houveram alterações.)

 

Caso não seja possível,  existe algum macro que possa fazer a conferência automática dos dois relatórios pra mim?

Ex: O macro lançar todos os números de propostas, e se tiver alguma alteração entre os relatórios, ele salvar em uma outra planilha o número da proposta, daí nem precisava mostrar qual alteração, pois ficaria mais fácil conferir.

 

 

Obrigado desde já.

Editado por Leonardo Meshoes

Compartilhar este post


Link para o post
Compartilhar em outros sites


Sub Relatório()

Dim LR As Long, r As Long, c As Long

Dim wb As Workbook

Dim Dif As String

LR = ThisWorkbook.Sheets("Relatorio1").Cells(Rows.Count, 1).End(xlUp).Row

Set wb = Workbooks.Add

ThisWorkbook.Sheets("Relatorio1").Range("A1:E" & LR).Copy wb.ActiveSheet.Range("A1")

Range("B1:E1").Copy Range("G1")

Range("K1") = "Conferencia"

Range("G2:J" & LR).Formula = "=VLOOKUP($A2," & "[" & ThisWorkbook.Name & "]Relatorio2!$A:$E,COLUMN()-5,0)"

For r = 2 To LR

Dif = ""

For c = 2 To 5

If Cells(r, c) <> Cells(r, c + 5) Then

Dif = Dif & ";" & Cells(1, c)

End If

Next

If Dif <> "" Then Cells(r, 11) = "Campos alterados: " & Mid(Dif, 2)

Next

MsgBox "Relatório gerado", vbInformation

End Sub

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado! Inicialmente é isso que preciso, mas só tem um problema, o arquivo da empresa, as colunas vão até BB, e as linhas não tem um número fixo, costuma variar entre 30 e 60.

 

Qual parte do código posso alterar para ajustar as colunas e linhas?

Editado por Patropi
Em respotas em sequência não use o botão Citar, use o botão responder

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou no trabalho agora. Segue exemplo da planilha complicada em que quero aplicar o macro que você me passou.

Ocultei algumas linhas para considerar apenas as alterações mesmo.

Nos relatórios, não me importa o numero sequencial, pois varia muito nos relatórios gerados, eu considero apenas a partir da coluna NUMPROPOSTA.

Como ajeito aquele macro para funcionar aqui?

Segue o arquivo.

Conferencia Teste.rar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×