Notifications
Clear all

problema no posicionamento dos registros

4 Posts
2 Usuários
0 Reactions
852 Visualizações
(@davds)
Posts: 9
Active Member
Topic starter
 

Ola

tenho uma planilha vinculada com um arquivo DBF, a coluna A e B trazem dados do arquivo DBF, ja a coluna C, os dados contidos nessa coluna são inseridos manualmente. o problema é que quando atualizo a planilha para trazer novos dados do arquivo DBF, os valores que se encontram na coluna C não ficam na mesma posição dos registros contidos nas colunas A e B. Ex:

ANTES DA ATUALIZACAO

-----------COLUNA A COLUNA B-------COLUNA C

LINHA50 - 12374-------01/12/2014------ CLIENTE
LINHA51 - 12375-------01/12/2014------ TESTE
LINHA52 - 12376-------01/12/2014-------CLIENTE BLOQUEADO

DEPOIS DA ATULIZACAO

LINHA50 - 12373-------01/12/2014------ CLIENTE
LINHA51 - 12374-------01/12/2014------ TESTE
LINHA52 - 12375-------01/12/2014------ CLIENTE BLOQUEADO
LINHA53 - 12376-------01/12/2014------- ?

notem que os registros da coluna C nao ficaram na mesma posiçao das linhas como estava antes da atualização, isso talvez porque apareceu um novo registro, no caso o 12373, o problema tambem ocorre quando é excluido algum registro.

como posso corrigir isso ?

 
Postado : 17/01/2014 7:25 pm
(@basole)
Posts: 487
Reputable Member
 

Ola davds,

Eu trabalhava com dbf, e queria tratar os dados com o excel e era uma briga. isso que voce quer fazer é meio dificil, para atualizar a coluna "C" juntamente com A e B, voce teria que alimentar as informacoes da coluna C direto na tabela DBF, mas acredito que seja um programa DOS e nao tenha este recurso, entao a solucao seria uma macro que voce associasse os dados da coluna C ao codigo do cliente por ex. ai a macro iria atualizar esses dados associando ao codigo referente.

 
Postado : 17/01/2014 8:30 pm
(@davds)
Posts: 9
Active Member
Topic starter
 

pois é, o problema é como eu faço isso

 
Postado : 20/01/2014 12:15 pm
(@basole)
Posts: 487
Reputable Member
 

Ola davds,

Supondo que quando atualiza o dfb os dados aparecem na A1 até B100, e na C1 a C100, onde voce digita as informações. Então seria mais ou menos assim:

1º voce executa isso:

'Essa macro copia os dados e cola na coluna "J"

Sub copiarColar()
 [a1:c100].Copy
  [j1:m100].PasteSpecial
End Sub

2º voce atualiza o dbf,
3º em seguida executa essa outra macro:

Sub Dbf()
    Dim c As Range
    Dim z As Long
    With Plan1
       z = .Cells(Rows.Count, 1).End(xlUp).Row
       For i = 1 To z
         With .Columns(10)
             Set c = .Find(Plan1.Range("a" & i).Value, LookIn:=xlValues, LookAt:=xlWhole)
             If Not c Is Nothing Then
                Range("c" & i) = c.Offset(0, 2).Value
             End If
         End With
       Next
    End With
End Sub
 
Postado : 20/01/2014 12:40 pm