Ir para conteúdo
Fórum Script Brasil

fdkdente

Membros
  • Total de itens

    5
  • Registro em

  • Última visita

Posts postados por fdkdente

  1. Bom dia pessoal,
    Estou com um problema em uma macro, onde ela está muito extensa e pouco "inteligente"
    Tenho uma planilha que faz o "check in" dos produtos que chegam na empresa, e outra de controle de estoque e quero que seja feito a adição da mercadoria do chek in para o estoque.
    Neste código estou pegando o produto e verificando seu nome, por exemplo, "arroz". Se ele for arroz, então a macro abre a planilha do estoque, pega a célula da frente do arroz (os produtos do estoque estão na coluna "A", suas quantidades estão na coluna "B") e soma a quantidade digitada na célula H8.
    Sub Checklist_para_estoque()
    Dim produto, exp_mi As String
    Dim quantidade As Double
    Sheets("Check List Transporte").Select
    produto = Range("b8").Value
    exp_mi = Range("a9").Value
    quantidade = Range("h8").Value
    
    
    
    
    If Range("C4").Value = "ORIGEM:" Then
    
    
    
    
        If produto = "Produto 1" Then
           Workbooks.Open ("C:\Users\Documents\controle_estoque.xls")
           Sheets("Saldo Total").Select
           Range("B16").Value = quantidade + Range("B16").Value
           ActiveWorkbook.Save
           ActiveWindow.Close
        
    ElseIf produto = "Produto 2" Then
           Workbooks.Open ("C:\Users\Documents\controle_estoque.xls")
           Sheets("Saldo Total").Select
           Range("B17").Value = quantidade + Range("B17").Value
           ActiveWorkbook.Save
           ActiveWindow.Close
           
    ElseIf produto = "Produto 3" Then
           Workbooks.Open ("C:\Users\Documents\controle_estoque.xls")
           Sheets("Saldo Total").Select
           Range("B18").Value = quantidade + Range("B18").Value
           ActiveWorkbook.Save
           ActiveWindow.Close
           
    ElseIf produto = "Produto 4" Then
           Workbooks.Open ("C:\Users\Documents\controle_estoque.xls")
           Sheets("Saldo Total").Select
           Range("B19").Value = quantidade + Range("B19").Value
           ActiveWorkbook.Save
           ActiveWindow.Close
    
    
    
    
    ElseIf produto = "Produto 5" Then
           Workbooks.Open ("C:\Users\Documents\controle_estoque.xls")
           Sheets("Saldo Total").Select
           Range("B20").Value = quantidade + Range("B20").Value
           ActiveWorkbook.Save
           ActiveWindow.Close
    
    
    
    
    
    
    
    
    [....]
    
    
    
    
    'Tenho q digitar produto por produto...
    
    '
    
    
    ElseIf produto = "Produto 124" Then
           Workbooks.Open ("C:\Users\Documents\controle_estoque.xls")
           Sheets("Saldo Total").Select
           Range("B137").Value = quantidade + Range("B21").Value
           ActiveWorkbook.Save
           ActiveWindow.Close
    
    
    
    
    ElseIf produto = "Produto 125" Then
           Workbooks.Open ("C:\Users\Documents\controle_estoque.xls")
           Sheets("Saldo Total").Select
           Range("B138").Value = quantidade + Range("B22").Value
           ActiveWorkbook.Save
           ActiveWindow.Close
    
    
    
    
           
    ElseIf produto = "Produto 126" Then
           Workbooks.Open ("C:\Users\Documents\controle_estoque.xls")
           Sheets("Saldo Total").Select
           Range("B139").Value = quantidade + Range("B139").Value
           ActiveWorkbook.Save
           ActiveWindow.Close
           
    
    
           
    Else
    End If       
    Else
    End If
    End Sub
    Queria saber como automatizar essa procura, sem precisar especificar a célula na frente do produto do estoque, pois são muitos produtos e se, por exemplo, eu tiver que adicionar algum produto no meio destes, eu teria também que mudar todas as referencias de baixo
    Seria um código que compara o nome do produto do check in com o nome do produto no estoque (Coluna "A"), se eles forem iguais, a célula referente ao produto no estoque é selecionada, em seguida a seleção passa para a célula da coluna seguinte (Coluna "B") e é acrescentado nela, a quantidade da célula H8
    Se alguém souber por favor me ajuda.
  2. Bom dia pessoal.

    Preciso de uma ajudinha com um código do vba.. é o seguinte:

    Tenho uma planilha que faz o "check in" dos produtos que chegam na empresa, e outra de controle de estoque e quero que seja feito a adição da mercadoria do chek in no estoque.

    Elaborei uma planilha simples, de exemplo que tem a mesma ideia https://www.sendspace.com/file/7f4s5l

    Pensei numa macro neste sentido:

    Dim qtd as Double
    Dim prod, prod_estoque as String
    
    Sheets("Estoque").Select
    prod_estoque = Range("A:A").Value
    
    Sheets("Cadastro").Select
    
    prod = Range("A1").Value
    qtd = Range("B1").Value
    
    If prod = prod_estoque Then
    
    'Aqui seria inserido um comando que seleciona a célula da Coluna A da planilha Estoque que tem o mesmo valor de prod, ou seja, é o mesmo produto. Em seguida, a seleção muda para a célula ao lado (coluna "B").
    
    ActiveCell.FormulaR1C1 = ActiveCell.FormulaR1C1 + qtd
    
    Else 
    End If
    End Sub

    O código tem alguns erros claros, como na linha "If prod = prod_estoque Then"... Mas acho que a ideia foi compreendida ^^

    Qualquer duvida só me perguntar...

    Se alguém puder me ajudar, agradeço.

  3. <script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script>

    Opa amigo, fiz o seguinte código abaixo...

    No meu exemplo eu montei duas colunas

    Na coluna A eu deixei uma numeração qualquer apenas para controle, como se fosse um numero de fatura por exemplo

    Na coluna B, deixei minhas datas de Vencimento

    Os valores começam na linha 3 da planilha

    e na Célula D1 eu deixei a fórmula =Hoje()

    então a macro verifica linha a linha as células da Coluna B e a compara com a célula D1

    Bom, acho que esse código pode te dar uma Luz para a sua planilha...

    Sub Vencimento()
    
    
    Dim intLinha As Integer
    intLinha = 3
    
    
    Do While Len(Range("a" & intLinha).Value) > 0
        
        If Range("B" & intLinha).Value <= Range("D1").Value Then
            Range("B" & intLinha).Interior.Pattern = xlSolid
            Range("B" & intLinha).Interior.Color = 255
        Else
            Range("B" & intLinha).Interior.Pattern = xlNone
        End If
        intLinha = intLinha + 1
    Loop
    
    
    End Sub

    Perfeito, ajudou muito (:

    Obrigado!!

  4. Bom dia, estou trabalhando em cima de uma planilha onde eu devo melhorar o sistema de datas e prazos para evitar vencimentos inesperados.

    *Lembrando que sou noob no assunto de macros e em VBA

    O que fiz foi o seguinte:

    Sub aviso_data()
    
    MsgBox "Datas próximas do vencimento em vermelho"
    
    If Range("B1").Value >= Range("B5").Value Then
    
    Range("B5").Interior.ColorIndex = 3
    Else
    End If
    
    If Range("B1").Value >= Range("B6").Value Then
    
    Range("B5").Interior.ColorIndex = 3
    Else
    End If
    
    If Range("B1").Value >= Range("B7").Value Then
    
    Range("B7").Interior.ColorIndex = 3
    Else
    End If
    
    If Range("B1").Value >= Range("B8").Value Then
    
    Range("B8").Interior.ColorIndex = 3
    Else
    End If
    End Sub
     

    JP15rVB.png?1

    Estou achando esse código muito simples e "manual", já que tenho que escolher uma por uma as células com a data do aviso.
    Gostaria de saber como seria possível e qual o código para usar corretamente variáveis, por exemplo:
    Sub aviso_data()
    
    Dim data_aviso As Date
    data_aviso = ("b5:b8")
    MsgBox "Datas próximas do vencimento em vermelho"
    
    If Range("B1").Value >= data_aviso Then
    ' Aqui poderia ter uma linha de código que pintasse o fundo das células cujo valor fosse menor ou igual a data de hoje
    Else
    End If
    End Sub

    Seria algo no sentido do código acima (ele está incorreto)

    Se alguém souber, por favor me ajude. Obrigado.

×
×
  • Criar Novo...