Notifications
Clear all

comparar e plan diferente(workbook) e copiar valor para BD

4 Posts
2 Usuários
0 Reactions
1,018 Visualizações
(@belan_)
Posts: 30
Eminent Member
Topic starter
 

Bom dia galera,
explicação rápida: problema no código para visualizar planilha externa e trazer dados para o "BD" . segue anexo para ilustrar melhor.

explicando melhor:
Imaginemos que na aba "BD" é um arquivo pasta de trabalho onde só existe aquela aba( e é nessa pasta de trabalho que estou desenvolvendo o codigo no meu arquivo original) e as outras abas "planilha externa vendas" e "planilha externa produção" pertence ao mesmo arquivo externo(pasta de trabalho).

eu preciso comparar 3 coisas e partir dai, copiar a celula correspondente (como se fosse matriz).
por exemplo: SE a coluna B do "BD" = Coluna A da planilha externa.aba vendas E se a coluna E do "BD" = Coluna B da planilha externa.aba bendas e se a coluna J na linha 2 dO "BD" = Coluna C na linha 1 da planilha externa então
ele deve copiar esse valor que corresponde essas condições para o local do banco de dados "BD" que também corresponde a essas condições.

Sub Sample()
    Dim wb1 As Workbook, wb2 As Workbook
    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim ws1LRow As Long, ws2LRow As Long
    Dim i As Long, j As Long
    Dim ws1LCol As Long, ws2LCol As Long
      Dim W As Long
    

 
    Set wb1 = Workbooks.Open("M:xxx.xlsx")    'apontar o caminho onde o arquivo externo está salvo
    Set ws1 = wb1.Sheets("VENDAS")
    '~~> Get the last Row and Last Column
    With ws1
        ws1LRow = .Range("A" & .Rows.Count).End(xlUp).Row
        ws1LCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
    End With

  
    Set wb2 = ThisWorkbook
    Set ws2 = wb2.Sheets("BD")
    '~~> Get the last Row and Last Column
    With ws2
        ws2LRow = .Range("A" & .Rows.Count).End(xlUp).Row
        ws2LCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
    End With


    For i = 2 To ws2LRow
        For j = 3 To ws2LCol
    If ws2.Cells(i, 3) = ws1.Cells(i, 1) And ws2.Cells(i, 5) = ws1.Cells(i, 2) And ws2.Cells(2, j) = ws1.Cells(1, j) Then
        
        W = ???? 'duvida de como por a celula respectiva a semana junto com o indicador e a unidade

grato desde ja!

 
Postado : 04/04/2016 7:18 am
(@belan_)
Posts: 30
Eminent Member
Topic starter
 

eu preciso retirar os dados da "planilha externa produção" e passa-los pro BD(banco de dados). só que pra isso eu quero que fazer um "for" para que ele percorra as duas planilhas e relacione o que é igual e traga pra planilha BD.

so que os dados da planilha externa estão em outro arquivo separado do bando de dados. Neste exemplo eu coloquei junto so pra facilitar.
o meu problema está em "como pegar os dados da planilha externa e inseri-los no banco de dados"

baixe o anexo e vc vera que na coluna "indicador" do BD terá 4 tipos ( vendas, produção, logistica, residuo) e cada um desses tipos terão as informações nas planilhas externas, separadamente. so preciso relacionar: celula xx do banco de dados = celula yy da planilha externa. não consigo fazer isso

obrigado e desculpe a confusão, realmente é meio complicado explicar

 
Postado : 04/04/2016 10:29 am
(@startec)
Posts: 2
New Member
 

Adaptei o codigo que voce postou , veja se é isso:

 
Postado : 04/04/2016 12:16 pm
(@belan_)
Posts: 30
Eminent Member
Topic starter
 

bom dia Startec.
infelizmente não consegui, coloquei pra depurar e ele ja travou na primeira linha do caminho do exemplo-externo. estou tentando averiguar o que está acontecendo.

muito obrigado

 
Postado : 05/04/2016 6:57 am