Ir ao conteúdo

Posts recomendados

Postado

Olá, pessoal! 

 

Vejam se consegue me ajudar. 

 

Tenho um código que importa dados de outras planilhas, mas queria que existisse um validador do tipo na hora de importar ele verificasse que existe um registro repetido que atualizasse. Por exemplo, importei uma planilha, mais de um tempo incluir mais uma informação ele iria ler que já possui os dados e com dado novo que inserir iria "sobressair" a informação já inserida. 

 

Sub Importar_Dados()

On Error GoTo Erro

Application.ScreenUpdating = False

Dim Guia As Object
Dim Planilha As Workbook
Dim EnderecoPlan As String
Dim Coluna As Double, Linha As Double, ColDestino As Double
Dim ColInicial As Double, ColFinal As Double, LinOrigem As Double

EnderecoPlan = Application.GetOpenFilename(FileFilter:="file,*.xls*")

If EnderecoPlan <> Empty And EnderecoPlan <> "Falso" Then
    Set Planilha = Application.Workbooks.Open(EnderecoPlan)
    Else
    Application.ScreenUpdating = True
    Exit Sub
End If

Set Guia = Planilha.Worksheets(1)

Windows(Planilha.Name).Visible = False

Coluna = 1
Linha = 1

Inicio:
Do
    Linha = Linha + 1
    
    If Guia.Cells(Linha, Coluna).Value <> Empty Then
        LinOrigem = Linha
        ColInicial = Coluna
        Do
        Coluna = Coluna + 1
        Loop Until Guia.Cells(Linha, Coluna).Value = Empty
        
        ColFinal = Coluna - 1
        Exit Do
    End If
    
    If Coluna = 100 Then
        Msgbox "Não encontrado cabeçalho!", vbExclamation, "IMPORTAR"
    Exit Sub
    End If

Loop Until Linha = 10

If LinOrigem = Empty Then
    Coluna = Coluna + 1
    Linha = 1
    GoTo Inicio:
End If

Coluna = ColInicial
ColDestino = 1
Linha = WorksheetFunction.CountA(Planilha2.Range("A:A")) + 2

With Planilha2

    Do
    LinOrigem = LinOrigem + 1
    
    For Coluna = ColInicial To ColFinal
        .Cells(Linha, ColDestino).Value = Guia.Cells(LinOrigem, Coluna).Value
        ColDestino = ColDestino + 1
        
    Next Coluna
    
    ColDestino = 1
    Linha = Linha + 1

Loop Until Guia.Cells(LinOrigem, ColInicial).Value = Empty
End With

Windows(Planilha.Name).Visible = True

Application.DisplayAlerts = False
Windows(Planilha.Name).Close
Application.DisplayAlerts = True


Set Planilha = Nothing
Set Guia = Nothing

Application.ScreenUpdating = True

Exit Sub
Erro:
Msgbox "Erro!", vbCritical, "IMPORTAR"

End Sub


 

 

 

Postado

Boa noite,

 

Você poderia postar a planilha que possui a macro e um exemplo de arquivo que ela importa?

 

Qual seria o critério para saber que os dados já estão na planilha? Você que a macro simplesmente ignore quando os dados já estiverem importados ou quer que eles se atualizem sem repetir?

Postado

Bom dia,

Encontrei apenas 1 das 3 coisas que eu pedi. Pode enviar um exemplo de arquivo que a macro importa, ou seja, um ou mais arquivos de remessa e explicar qual é o critério para considerar a linha como duplicada? Seria a combinação das colunas A e B?.

Postado

@Wendell Menezes Olá! 

 

O exemplo de arquivo que a macro importa é essa planilha mesmo terá uma planilha "central" que vai importar de outras planilhas iguais ( é o mesmo modelo não muda nada ) o objetivo é centralizar as informações. Para considerar se é duplicado é olhar toda a linha não tem uma coluna chave. Estou com dificuldade em montar o código nessa parte, porque eu preciso que ele olhe para linha toda se for repetida atualiza senão incluir um linha nova. 

  • 2 semanas depois...
Postado

@Wendell Menezes Olá! 

 

Na verdade todas as planilhas são idênticas são os mesmos dados, porém tem uma informação que é colocada depois de alguns dias. Objetivo que eu queria ajustar o macro é o seguinte quando eu for importar novamente com essa informação nova em vez de acrescentar uma linha na planilha o código iria ver que já existe essa linha e só atualizasse com essa informação nova. 

 

Obrigada por me responder! 

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!