Ir ao conteúdo
  • Cadastre-se

Relatório com Macro no Excel


Ir à solução Resolvido por Wendell Menezes,

Posts recomendados

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á.

Link para o comentário
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
Link para o comentário
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

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber 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!