Você está na página 1de 7

FORMULARIO SAIDA

Sub atualiza_caixa_produtos()

linha = Sheets("Controle_Produtos").Range("A1048576").End(xlUp).Row

caixa_produtos.RowSource = "Controle_Produtos!B2:B" & linha

End Sub

Private Sub Adicionar_saida_Click()

If caixa_produtos.Value = "" Then

        MsgBox ("Preencha o nome produto")

        Exit Sub

End If

If caixa_quantidades.Value = "" Then

        MsgBox ("Preencha a quantidade da transação")

        Exit Sub

End If

If caixa_datas.Value = "" Then

        MsgBox ("Preencha a data da transação")

        Exit Sub

End If

If caixa_tipos.Value = "" Then


        MsgBox ("Preencha o tipo da transação")

        Exit Sub

End If

linha = Sheets("Historico_compras").Range("A1000000").End(xlUp).Row + 1

Sheets("Historico_compras").Cells(linha, 1).Value =
WorksheetFunction.Max(Sheets("Historico_compras").Range("A:A")) + 1

Sheets("Historico_compras").Cells(linha, 2).Value = caixa_produtos.Value

Sheets("Historico_compras").Cells(linha, 3).Value = caixa_quantidades.Value + 0

Sheets("Historico_compras").Cells(linha, 4).Value = CDate(caixa_datas.Value)

Sheets("Historico_compras").Cells(linha, 5).Value = caixa_tipos.Value

caixa_produtos.Values = ""

caixa_quantidades = ""

caixa_datas = ""

caixa_tipos.Value = ""

MsgBox ("Transação adicionada com sucesso")

End Sub

Private Sub caixa_datas_Change()

Dim texto As String

        Dim novaData As String

        Dim dia As String

        Dim mes As String

        Dim ano As String

    
        texto = caixa_datas.Text

        novaData = ""

    

        ' Remove caracteres não numéricos da string

        For i = 1 To Len(texto)

                If IsNumeric(Mid(texto, i, 1)) Then

                        novaData = novaData & Mid(texto, i, 1)

                End If

        Next i

    

        ' Formata a novaData no formato dd/mm/yy

        If Len(novaData) >= 6 Then

                dia = Left(novaData, 2)

                mes = Mid(novaData, 3, 2)

                ano = Right(novaData, 2)

        

                novaData = dia & "/" & mes & "/" & ano

        End If

    

        ' Atualiza o texto na caixa de texto

        caixa_datas.Text = novaData

End Sub

Private Sub caixa_quantidades_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

' Verifica se a tecla pressionada é um número

        If Not IsNumeric(Chr(KeyAscii)) And KeyAscii <> 8 Then

                ' Se não for um número e não for a tecla Backspace (8),

                ' cancela a tecla pressionada


                KeyAscii = 0

        End If

End Sub

Private Sub CommandButton5_Click()

End Sub

Private Sub UserForm_Initialize()

caixa_tipo.AddItem "Saída"

Call atualiza_caixa_produtos

End Sub

RAÇAO AUTOMATICA

Sub SubtrairIngredientes()

        Dim ws As Worksheet

        Dim estoque As Range, ingredientes As Range

        Dim celEstoque As Range, celIngredientes As Range

        Dim racao As String

        Dim quantidade As Double

    
        ' Defina a planilha de estoque e os intervalos de estoque e ingredientes

        Set ws = ThisWorkbook.Sheets("Planilha de Estoque")

        Set estoque = ws.Range("A2:B10") ' Intervalo de estoque (coluna A: ingredientes, coluna B:


quantidade)

        Set ingredientes = ws.Range("D2:E10") ' Intervalo de ingredientes para cada ração (coluna D:
ração, coluna E: quantidade)

    

        ' Obtenha a ração selecionada e a quantidade

        racao = InputBox("Digite o nome da ração:")

        quantidade = CDbl(InputBox("Digite a quantidade de ração:"))

    

        ' Percorra os ingredientes da ração selecionada

        For Each celIngredientes In ingredientes.Rows

                ' Verifique se a ração corresponde à ração selecionada

                If celIngredientes.Value = racao Then

                        ' Encontre o ingrediente correspondente no estoque

                        For Each celEstoque In estoque.Columns(1).Cells

                                If celEstoque.Value = celIngredientes.Offset(0, 1).Value Then

                                        ' Verifique se há quantidade suficiente no estoque

                                        If celEstoque.Offset(0, 1).Value >= quantidade * celIngredientes.Offset(0,


1).Value Then

                                                ' Subtraia a quantidade necessária do estoque

                                                celEstoque.Offset(0, 1).Value = celEstoque.Offset(0, 1).Value - quantidade *


celIngredientes.Offset(0, 1).Value

                                        Else

                                                ' Quantidade insuficiente no estoque

                                                MsgBox "Quantidade insuficiente de " & celEstoque.Offset(0, 1).Value & "


no estoque."

                                        End If

                                        Exit For

                                End If
                        Next celEstoque

                End If

        Next celIngredientes

    

        ' Limpe as variáveis

        Set ws = Nothing

        Set estoque = Nothing

        Set ingredientes = Nothing

        Set celEstoque = Nothing

        Set celIngredientes = Nothing

End Sub

Claro! Posso ajudá-lo com um código VBA para subtrair os ingredientes


necessários do estoque quando você clicar em um botão específico. Aqui está um
exemplo de como você pode fazer isso:

Primeiro, abra o editor VBA no Excel pressionando ALT + F11. Em seguida, insira o
seguinte código no módulo:

Certifique-se de substituir "Planilha de Estoque" pelo nome da sua planilha onde


você mantém os dados de estoque e ingredientes. O código assume que você tem
uma coluna para os ingredientes na coluna A, uma coluna para a quantidade
disponível na coluna B e uma coluna para o nome da ração na coluna D, com a
quantidade necessária na coluna E.

Após adicionar o código, você pode criar um botão na sua planilha e atribuir a
macro "SubtrairIngredientes" a ele. Quando você clicar no botão, será solicitado
que você digite o nome da ração e a quantidade desejada. O código verificará se
há ingredientes suficientes no estoque e, se houver, subtrairá a quantidade
necessária.
Certifique-se de ajustar os intervalos de estoque e ingredientes de acordo com a
estrutura da sua planilha. Espero que isso ajude!

INGREDIENTES VACAS – 70% 455 milho + 245 soja + 10,5 nucleo

INGREDIENTES GALINHA - +80% 1188 milho + 408 soja + 85 carne + 170 calcario + 5,1 sal + 3,4
premix + 1,7 metionina + 1,7 toxin + 68g corante + 68g ftrigo

Você também pode gostar