Ir para conteúdo
Fórum Script Brasil
  • 0

Comparar valores entre planilhas por VBA


Daniel Brandt

Pergunta

Boa noite,

Estou automatizando um restaurante por quilho onde a Balança possui uma planilha, que, ao abrir uma comanda, cadastra-a com um ID em uma planilha de BD, e o Caixa por sua vez possui outra planilha onde capta os valores do BD por PROCV.

Segue algumas fotos

Balança: http://i.imgur.com/NcX55t4.jpg
Caixa: http://i.imgur.com/mKNAqYM.jpg
Banco de Dados: http://i.imgur.com/ceQmsZW.jpg

Por não conhecer VBA suficiente para programar, peguei um código similar e editei para a minha finalidade, abaixo segue o código:

Sub ABRIR_COMANDA()

    'VARIÁVEL DE REGISTRO DOS ORÇAMENTOS CADASTRADOS
    Dim NR As Long
    
    'ATUALIZA DADOS DA DO BANCO DE DADOS BASEADOS NOS DADOS DO ORÇAMENTO
    
    Application.ScreenUpdating = False
    
    Dim COD As Integer
    Dim NOME As String
    Dim TELEFONE_RESIDENCIAL As String
    Dim TELEFONE_COMERCIAL As String
    Dim TELEFONE_CELULAR As String
    Dim N As String
    Dim ENDERECO As String
    Dim AP As Variant
    
    Dim EDIFICIO As String
                                                
    Dim L1_LOCAL_INSTALACAO As Double
    Dim L1_ALT As Variant
    Dim L1_LARG As String
    Dim L1_ALT_10 As Double
    Dim L1_ALT_7 As Double
    Dim L1_ALT_5 As Variant

    Dim L2_LOCAL_INSTALACAO As String
    Dim L2_ALT As Variant
    Dim L2_LARG As String
    Dim L2_ALT_10 As Double
    Dim L2_ALT_7 As Double
    Dim L2_ALT_5 As Variant

    Dim L3_LOCAL_INSTALACAO As String
    Dim L3_ALT As Variant
    Dim L3_LARG As String
    Dim L3_ALT_10 As Double
    Dim L3_ALT_7 As Double
    Dim L3_ALT_5 As Variant

    Dim L4_LOCAL_INSTALACAO As String
    Dim L4_ALT As Variant
    Dim L4_LARG As String
    Dim L4_ALT_10 As Double
    Dim L4_ALT_7 As Double
    Dim L4_ALT_5 As Variant

    Dim L5_LOCAL_INSTALACAO As String
    Dim L5_ALT As Variant
    Dim L5_LARG As String
    Dim L5_ALT_10 As Double
    Dim L5_ALT_7 As Double
    Dim L5_ALT_5 As Variant

    Dim L6_LOCAL_INSTALACAO As String
    Dim L6_ALT As Variant
    Dim L6_LARG As String
    Dim L6_ALT_10 As Double
    Dim L6_ALT_7 As Double
    Dim L6_ALT_5 As Variant

    Dim L7_LOCAL_INSTALACAO As String
    Dim L7_ALT As Variant
    Dim L7_LARG As String
    Dim L7_ALT_10 As Double
    Dim L7_ALT_7 As Double
    Dim L7_ALT_5 As Variant

    Dim L8_LOCAL_INSTALACAO As String
    Dim L8_ALT As Variant
    Dim L8_LARG As String
    Dim L8_ALT_10 As Double
    Dim L8_ALT_7 As Double
    Dim L8_ALT_5 As Variant

    Dim L9_LOCAL_INSTALACAO As String
    Dim L9_ALT As Variant
    Dim L9_LARG As String
    Dim L9_ALT_10 As Double
    Dim L9_ALT_7 As Double
    Dim L9_ALT_5 As Variant

    Dim L10_LOCAL_INSTALACAO As String
    Dim L10_ALT As Variant
    Dim L10_LARG As String
    Dim L10_ALT_10 As Double
    Dim L10_ALT_7 As Double
    Dim L10_ALT_5 As Variant

    Dim L11_LOCAL_INSTALACAO As Variant
    Dim L11_ALT_5 As Variant
    
    
    'SELECIONA A ABA DA BALANÇA
    Sheets("BALANÇA").Select
    
    'VERIFICA SE O CAMPO CLIENTE ESTÁ VAZIO, SE não TIVER PREENCHE OS CAMPOS
    If IsEmpty(Range("B5").Value) = False Then
   
    'AS VARIAVEIS RECEBEM OS DADOS DA PLANILHA
    COD = Range("B3").Value 'ID
    NOME = Range("D3").Value 'NOME
    TELEFONE_RESIDENCIAL = Range("C5").Value 'CPF
    TELEFONE_COMERCIAL = Range("C4").Value 'SEXO
    TELEFONE_CELULAR = Range("F4").Value 'Data de Nascimento
    ENDERECO = Range("F5").Value 'E-mail
    N = Range("J3").Value 'Dia
    AP = Range("L3").Value 'Hora
    EDIFICIO = Range("H7").Value
    
    L1_LOCAL_INSTALACAO = Range("A41").Value 'Pega o Peso do Prato
    L1_ALT = Range("C41").Value 'Preço do Prato
    L1_LARG = Range("D41").Value 'Nome da Bebida
    L1_ALT_10 = Range("E41").Value 'Quantidade de Bebida
    L1_ALT_7 = Range("F41").Value  'Sobremesa
    L1_ALT_5 = Range("G41").Value  'SubTotal
    
    L2_LOCAL_INSTALACAO = Range("A42").Value 'Peso do Prato
    L2_ALT = Range("C42").Value 'Preço do Prato
    L2_LARG = Range("D42").Value 'Nome da Bebida
    L2_ALT_10 = Range("E42").Value 'Quantidade de Bebida
    L2_ALT_7 = Range("F42").Value  'Sobremesa
    L2_ALT_5 = Range("G42").Value  'SubTotal

    L3_LOCAL_INSTALACAO = Range("A43").Value 'Peso do Prato
    L3_ALT = Range("C43").Value 'Preço do Prato
    L3_LARG = Range("D43").Value 'Nome da Bebida
    L3_ALT_10 = Range("E43").Value 'Quantidade de Bebida
    L3_ALT_7 = Range("F43").Value  'Sobremesa
    L3_ALT_5 = Range("G43").Value  'SubTotal

    L4_LOCAL_INSTALACAO = Range("A44").Value 'Peso do Prato
    L4_ALT = Range("C44").Value 'Preço do Prato
    L4_LARG = Range("D44").Value 'Nome da Bebida
    L4_ALT_10 = Range("E44").Value 'Quantidade de Bebida
    L4_ALT_7 = Range("F44").Value  'Sobremesa
    L4_ALT_5 = Range("G44").Value  'SubTotal

    L5_LOCAL_INSTALACAO = Range("A45").Value 'Peso do Prato
    L5_ALT = Range("C45").Value 'Preço do Prato
    L5_LARG = Range("D45").Value 'Nome da Bebida
    L5_ALT_10 = Range("E45").Value 'Quantidade de Bebida
    L5_ALT_7 = Range("F45").Value  'Sobremesa
    L5_ALT_5 = Range("G45").Value  'SubTotal

    L6_LOCAL_INSTALACAO = Range("A46").Value 'Peso do Prato
    L6_ALT = Range("C46").Value 'Preço do Prato
    L6_LARG = Range("D46").Value 'Nome da Bebida
    L6_ALT_10 = Range("E46").Value 'Quantidade de Bebida
    L6_ALT_7 = Range("F46").Value  'Sobremesa
    L6_ALT_5 = Range("G46").Value  'SubTotal

    L7_LOCAL_INSTALACAO = Range("A47").Value 'Peso do Prato
    L7_ALT = Range("C47").Value 'Preço do Prato
    L7_LARG = Range("D47").Value 'Nome da Bebida
    L7_ALT_10 = Range("E47").Value 'Quantidade de Bebida
    L7_ALT_7 = Range("F47").Value  'Sobremesa
    L7_ALT_5 = Range("G47").Value  'SubTotal

    L8_LOCAL_INSTALACAO = Range("A48").Value 'Peso do Prato
    L8_ALT = Range("C48").Value 'Preço do Prato
    L8_LARG = Range("D48").Value 'Nome da Bebida
    L8_ALT_10 = Range("E48").Value 'Quantidade de Bebida
    L8_ALT_7 = Range("F48").Value  'Sobremesa
    L8_ALT_5 = Range("G48").Value  'SubTotal

    L9_LOCAL_INSTALACAO = Range("A49").Value 'Peso do Prato
    L9_ALT = Range("C49").Value 'Preço do Prato
    L9_LARG = Range("D49").Value 'Nome da Bebida
    L9_ALT_10 = Range("E49").Value 'Quantidade de Bebida
    L9_ALT_7 = Range("F49").Value  'Sobremesa
    L9_ALT_5 = Range("G49").Value  'SubTotal

    L10_LOCAL_INSTALACAO = Range("A50").Value 'Peso do Prato
    L10_ALT = Range("C50").Value 'Preço do Prato
    L10_LARG = Range("D50").Value 'Nome da Bebida
    L10_ALT_10 = Range("E50").Value 'Quantidade de Bebida
    L10_ALT_7 = Range("F50").Value  'Sobremesa
    L10_ALT_5 = Range("G50").Value  'SubTotal
    
    L11_LOCAL_INSTALACAO = Range("B51").Value
    L11_ALT_5 = Range("G51").Value
               
    'MUDA PARA A PLANILHA DE MOVIMENTO_DO_DIA E SALVA OS DADOS
    Sheets("MOVIMENTO_DO_DIA").Select
    
    LFound = False
    lrow = 3
        
    Do While LFound = False

        'PROCURA O PRIMEIRO REGISTRO EM BRANCO PARA COLOCAR ALI OS DADOS DA PLANILHA
       If IsEmpty(Range("A" & lrow).Value) = True Then
          LFound = True
       End If
            
       lrow = lrow + 1
        
    Loop
               
        Sheets("MOVIMENTO_DO_DIA").Select
        
        Range("a3").End(xlDown).Select
    
        'NR = ActiveCell.Row
   
        'Range("A65536").End(xlUp).Offset(1, 0).Select
    
        'ActiveCell.Offset(0, 1).Value = NR
        Range("A" & lrow - 1).Value = N
        Range("B" & lrow - 1).Value = AP
        Range("C" & lrow - 1).Value = lrow - 3
        Range("D" & lrow - 1).Value = COD
        Range("E" & lrow - 1).Value = NOME
        Range("F" & lrow - 1).Value = TELEFONE_RESIDENCIAL
        Range("G" & lrow - 1).Value = TELEFONE_COMERCIAL
        Range("H" & lrow - 1).Value = TELEFONE_CELULAR
        Range("I" & lrow - 1).Value = ENDERECO
        Range("EA" & lrow - 1).Value = N
        Range("EC" & lrow - 1).Value = EDIFICIO
                        
        Range("J" & lrow - 1).Value = L1_LOCAL_INSTALACAO 'Cola o Peso do prato
        Range("K" & lrow - 1).Value = L1_ALT
        Range("L" & lrow - 1).Value = L1_LARG
        Range("M" & lrow - 1).Value = L1_ALT_10
        Range("O" & lrow - 1).Value = L1_ALT_7
        Range("P" & lrow - 1).Value = L1_ALT_5

        Range("Q" & lrow - 1).Value = L2_LOCAL_INSTALACAO
        Range("R" & lrow - 1).Value = L2_ALT
        Range("S" & lrow - 1).Value = L2_LARG
        Range("T" & lrow - 1).Value = L2_ALT_10
        Range("V" & lrow - 1).Value = L2_ALT_7
        Range("W" & lrow - 1).Value = L2_ALT_5

        Range("X" & lrow - 1).Value = L3_LOCAL_INSTALACAO
        Range("Y" & lrow - 1).Value = L3_ALT
        Range("Z" & lrow - 1).Value = L3_LARG
        Range("AA" & lrow - 1).Value = L3_ALT_10
        Range("AC" & lrow - 1).Value = L3_ALT_7
        Range("AD" & lrow - 1).Value = L3_ALT_5

        Range("AE" & lrow - 1).Value = L4_LOCAL_INSTALACAO
        Range("AF" & lrow - 1).Value = L4_ALT
        Range("AG" & lrow - 1).Value = L4_LARG
        Range("AH" & lrow - 1).Value = L4_ALT_10
        Range("AJ" & lrow - 1).Value = L4_ALT_7
        Range("AK" & lrow - 1).Value = L4_ALT_5
        
        Range("AL" & lrow - 1).Value = L5_LOCAL_INSTALACAO
        Range("AM" & lrow - 1).Value = L5_ALT
        Range("AN" & lrow - 1).Value = L5_LARG
        Range("AO" & lrow - 1).Value = L5_ALT_10
        Range("AQ" & lrow - 1).Value = L5_ALT_7
        Range("AR" & lrow - 1).Value = L5_ALT_5
        
        Range("AS" & lrow - 1).Value = L6_LOCAL_INSTALACAO
        Range("AT" & lrow - 1).Value = L6_ALT
        Range("AU" & lrow - 1).Value = L6_LARG
        Range("AV" & lrow - 1).Value = L6_ALT_10
        Range("AX" & lrow - 1).Value = L6_ALT_7
        Range("AY" & lrow - 1).Value = L6_ALT_5
        
        Range("AZ" & lrow - 1).Value = L7_LOCAL_INSTALACAO
        Range("BA" & lrow - 1).Value = L7_ALT
        Range("BB" & lrow - 1).Value = L7_LARG
        Range("BC" & lrow - 1).Value = L7_ALT_10
        Range("BE" & lrow - 1).Value = L7_ALT_7
        Range("BF" & lrow - 1).Value = L7_ALT_5
        
        Range("BG" & lrow - 1).Value = L8_LOCAL_INSTALACAO
        Range("BH" & lrow - 1).Value = L8_ALT
        Range("BI" & lrow - 1).Value = L8_LARG
        Range("BJ" & lrow - 1).Value = L8_ALT_10
        Range("BL" & lrow - 1).Value = L8_ALT_7
        Range("BM" & lrow - 1).Value = L8_ALT_5

        Range("BN" & lrow - 1).Value = L9_LOCAL_INSTALACAO
        Range("BO" & lrow - 1).Value = L9_ALT
        Range("BP" & lrow - 1).Value = L9_LARG
        Range("BQ" & lrow - 1).Value = L9_ALT_10
        Range("BS" & lrow - 1).Value = L9_ALT_7
        Range("BT" & lrow - 1).Value = L9_ALT_5
        
        Range("BU" & lrow - 1).Value = L10_LOCAL_INSTALACAO
        Range("BV" & lrow - 1).Value = L10_ALT
        Range("BW" & lrow - 1).Value = L10_LARG
        Range("BX" & lrow - 1).Value = L10_ALT_10
        Range("BZ" & lrow - 1).Value = L10_ALT_7
        Range("CA" & lrow - 1).Value = L10_ALT_5
        
        Range("CB" & lrow - 1).Value = L11_LOCAL_INSTALACAO
        Range("CC" & lrow - 1).Value = L11_ALT_5

                
End If
    
    MsgBox ("Comanda cadastrado com sucesso!")
    Application.ScreenUpdating = True
    Sheets("BALANÇA").Select
    LIMPAR_COMANDA_BALANCA
    ENUMERA_ID
    
End Sub

Meu problema é o seguinte:

O código esta programado para procurar uma linha vazia, inserir +1 ao número de ID da linha anterior e despejar nela as informações da Balança.
Para reproduzir este código para o Caixa eu preciso que em vez de procurar uma linha vazia, ele procure o código (que ta em B3) e despeje as informações na mesma linha, substituindo os valores.

Será que vocês conseguem me ajudar?

Grande abraço!

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Para facilitar, quem não quiser ler todo o código, esta é exatamente a parte que preciso alterar:

Sheets("MOVIMENTO_DO_DIA").Select

LFound = False
lrow = 3

Do While LFound = False
'End If
'PROCURA O PRIMEIRO REGISTRO EM BRANCO PARA COLOCAR ALI OS DADOS DA PLANILHA
If IsEmpty(Range("A" & lrow).Value) = True Then
LFound = True
End If

lrow = lrow + 1

Loop
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...