Atualização de Dado...
 
Notifications
Clear all

Atualização de Dados

21 Posts
2 Usuários
0 Reactions
3,089 Visualizações
(@brunoafs)
Posts: 195
Reputable Member
Topic starter
 

Bom dia, estou precisando de uma ajuda para formular um código.

Eu tenho uma planiha base com vários dados de uma operação.

EX: Cód. // Cliente // Observações

E existe uma outra planilha que contém os mesmo dados porém com atualizações do campo de Observações.
Essa planilha é atualizada por outro setor e envia para nós podermos ver o que foi observado naquela data 'X'.

Código:

Preciso de um código na planilha base que adicione as observações da planilha do outro setor.

EX:

Dados que tem na planilha Base:

Cód. * Cliente * Observação
001 * João * 07.10 sem contato
001 * Maria * 10.10 tem interesse
002 * João *

Outra planilha:

Cód. * Cliente * Observação
001 * João * 13.10 contato ok, tem interesse
001 * Maria * 13.10 cliente desistiu
002 * João * 13.10 caixa postal

Planilha Base atualizada.

Cód. * Cliente * Observação
001 * João * 07.10 sem contato // 13.10 contato ok, tem interesse
001 * Maria * 10.10 tem interesse // 13.10 cliente desistiu
002 * João * 13.10 caixa postal

OBS: Preciso da condição de procura do Cód e Cliente (Pois podem ter código e clientes iguais, porém nunca o mesmo código com mesmo nome).
E vincule a observação atual com a atualizada.

Não sei como começar.

 
Postado : 13/11/2014 9:28 am
(@edcronos)
Posts: 1006
Noble Member
 

vc pode começar postando um exemplo da sua planilha com as posições exatas dos dados e dados fictícios .
isso iria facilitar quem está disposto a te ajudar.

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 13/11/2014 9:48 am
(@brunoafs)
Posts: 195
Reputable Member
Topic starter
 

Segue anexo de um modelo básico.

Preciso que as observações da Planilha "Atualizações" sejam incorporados na planilha "Base"

Na base tem por exemplo 400 linhas.

Atualizações sempre vai ser menos pois nem todos os clientes/cód são atualizados.

 
Postado : 13/11/2014 10:17 am
(@edcronos)
Posts: 1006
Noble Member
 

deixa ver se entendi...

no caso,
na planilha base tem todos os dados e observações inseridas por outros setores de trabalho.
na planilha atualizações tem dados filtrados ou escolhidos
e que vc quer adicionar as observações da planilha BASE para esse dados "Nomes de clientes"

como tem nomes repetidos qual a prioridade de mostrar os dados, no caso de na planilha atualização não conter todos os dados referente ao mesmo nome da planilha base?

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 13/11/2014 10:36 am
(@edcronos)
Posts: 1006
Noble Member
 

improvisei essa macro,
mas os nomes e cod tem que ser totalmente iguais, se tiver um espaço a mais não vai retornar a observação.

Sub Macro4()
Dim Coluno(), Coluno2()

Windows("Base.xlsx").Activate
Line = Cells(Rows.Count, 1).End(xlUp).Row
Coluno = Range("A" & 2, "C" & Line).Value2
Coluno2 = Range("K" & 2, "K" & Line).Value2

    Windows("Atualizações.xlsx").Activate
    lind = Cells(Rows.Count, 1).End(xlUp).Row
For n = 2 To lind
  cdg = Cells(n, 1).Value2
  nm = Cells(n, 2).Value2
  lf = lind - 1
For l = 1 To lf
If cdg = Coluno(l, 1) Then If nm = Coluno(l, 3) Then Cells(n, 3).Value2 = Coluno2(l, 1): Exit For
Next
Next

End Sub

pelo menos foi isso que entendi que vc queria

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 13/11/2014 11:29 am
(@brunoafs)
Posts: 195
Reputable Member
Topic starter
 

edcronos, estava no almoço voltei agora.

A "Base" tem todos os clientes e as observações atualizadas.

A "Atualizações" outro setor entrar em contato com o cliente e coloca na observação o que foi verificado no dia "X".

Porém não é atualizado de todos os clientes.

Então tenho que vincular os clientes da planilha "Atualizado" e incorporar os comentários no já existente na Base.

EX:

Base: Cliente 1 - Observação: 07.11 - OK

Atualização: Cliente 1 - Observação: 13.11 - Cancelado

Base Atualizada: Cliente 1 - Observação: 07.11 - OK // 13.11 - Cancelado

 
Postado : 13/11/2014 11:48 am
(@edcronos)
Posts: 1006
Noble Member
 

então é o contrario,
é da atualizada para a base
e no caso é para concatenar os dados antigos com os novos

é isso?
ou tem outra planilha envolvida?

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 13/11/2014 11:52 am
(@brunoafs)
Posts: 195
Reputable Member
Topic starter
 

Isso,

Segue anexo de como é para ficar...

Adicionei o "Base Atualizada" pra ter ideia de como tem que ficar a planilha "Base"

EDIT: Os clientes que não teve atualização o campo observações continua o mesmo.

Os demais que teve observações é incorporado com o que já existe.

Lembrando que as condições é Cód & Cliente estarem vinculados.

 
Postado : 13/11/2014 12:05 pm
(@edcronos)
Posts: 1006
Noble Member
 

ve se é isso
o problema é sabe quando teve atualização ou não se o nome e o codigo estão na planilha atualização

essa macro vai atualizar a planilha base se encontrar o cod e o nome vinculado na planilha atualização

Sub Macro4()
    Dim Coluno()
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual

    Windows("Atualizações.xlsx").Activate
    Line = Cells(Rows.Count, 1).End(xlUp).Row
    Coluno = Range("A" & 2, "C" & Line).Value2


    Windows("Base.xlsx").Activate
    Line = Cells(Rows.Count, 1).End(xlUp).Row

     t = 0
    For n = 2 To Line
        cdg = Cells(n, 1).Value2
        nm = Cells(n, 3).Value2
        lf = Line - 1
        For L = 1 To lf
            If cdg = Coluno(L, 1) Then
            If nm = Coluno(L, 2) Then
            Cells(n, 11).Value2 = Cells(n, 11).Value2 & "  //  " & Coluno(L, 3)
             t = 1
             End If
             End If
             If t = 1 Then t = 0: Exit For
        Next
    Next
    
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
End Sub

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 13/11/2014 12:12 pm
(@brunoafs)
Posts: 195
Reputable Member
Topic starter
 

Deu erro na linha:

If cdg = Coluno(L, 1) Then

 
Postado : 13/11/2014 12:21 pm
(@edcronos)
Posts: 1006
Noble Member
 

tem que ver pq
na planilha exemplo que vc mandou funcionou

essa macro apenas adiciona os valores da planilha atualização num array para o vba não ficar fazendo loops consecutivos na planilha
e depois verifica os valores da planilha base com esse array
qual foi o codigo do erro?

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 13/11/2014 12:33 pm
(@brunoafs)
Posts: 195
Reputable Member
Topic starter
 

edcronos,

Pra ficar mais fácil o código.

Digamos que coloque uma aba na Planilha Base chamado "Atualizações"

Como ficaria o código?

Estaria usando apenas uma planilha pra facilitar.

Obrigado

 
Postado : 13/11/2014 12:55 pm
(@edcronos)
Posts: 1006
Noble Member
 

**** tem que colocar a macro em um modulo
para usar abas diferentes em vez de planilhas diferentes

Windows("Atualizações.xlsx").Activate 'ativa a planilha
Windows("Base.xlsx").Activate

Sheets("Base").Activate ' ativa a aba
Sheets("Atualizações").Activate

tenta coloca essa linha
Sheets("Base").Activate
depois de
Windows("Atualizações.xlsx").Activate
e de
Windows("Base.xlsx").Activate
para ativar a aba que tem os dados
talvez seja por isso

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 13/11/2014 1:12 pm
(@brunoafs)
Posts: 195
Reputable Member
Topic starter
 

Consegui colocar na mesma planilha,

porém mesmo erro acontece.

Atualiza a primeira pessoa certinho.

Na segunda da erro na linha que falei.

 
Postado : 13/11/2014 1:30 pm
(@edcronos)
Posts: 1006
Noble Member
 

ve se tem diferenças de linhas de uma para outra

ou tenta trocar os dados importantes e disponibilizar sua planilha

essa linha somente faz a verificação dos dados com o array.

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 13/11/2014 1:44 pm
Página 1 / 2