none
Programação em VBA - Critério para gerar código RRS feed

  • Pergunta

  • Olá possuo a seguinte dúvida.

    Tenho um programa em VBA que estou utilizando para gerar código, porém gostaria que os códigos focem gerados a partir de uma ComboBox, ou seja quando clico na ComboBox apareça descrições/família ou grupo que ele pertença e o código seja gerado, o mesmo não pode ser repetido.

    Segue o código ja utilizado

    Private Sub CommandButton1_Click() 'botao para criação de novo materias
    Label1 = "NOVO" 'A label serve como um método de consultar, oprograma sempre irá analizar seu valor para assim prosseguir
    ComboBoxgrupo.Enabled = True
    TextBoxcodigo.Enabled = True
    Sheets("Cadastro de grupos").Range("k3").Value = ComboBoxgrupo
    TextBoxcodigo.Value = Sheets("Cadastro de grupos").Range("L3").Text
    TextBoxdescricao.Enabled = True
    TextBoxdata.Enabled = True
    TextBoxvalor.Enabled = True
    TextBoxqt.Enabled = True
    TextBoxfabricante.Enabled = True
    TextBoxfornecedor.Enabled = True
    TextBoxlocalizacao.Enabled = True
    TextBox10.Enabled = True
    TextBoxqtmax.Enabled = True
    TextBoxqtinicial.Enabled = True
    TextBoxdata = Date
    ComboBoxgrupo = ""
    TextBoxvalor = ""
    TextBoxqt = ""
    TextBoxfabricante = ""
    TextBoxfornecedor = ""
    TextBoxlocalizacao = ""
    CommandButton1.Enabled = False
    CommandButton2.Enabled = False
    CommandButton3.Enabled = False
    CommandButton4.Enabled = False
    CommandButton5.Enabled = True
    CommandButton6.Enabled = True
    TextBoxdescricao.SetFocus
    
    End Sub
    
    
    Private Sub CommandButton2_Click() ' Botão para alterar materias
    Label1 = "ALTERAR"
    TextBoxcodigo.Enabled = True
    CommandButton1.Enabled = False
    CommandButton2.Enabled = False
    CommandButton3.Enabled = False
    CommandButton4.Enabled = False
    CommandButton5.Enabled = True
    CommandButton6.Enabled = True
    End Sub
    
    Private Sub CommandButton3_Click() ' Botão para consultar
    Label1 = "CONSULTAR"
    TextBoxcodigo.Enabled = True
    CommandButton1.Enabled = False
    CommandButton2.Enabled = False
    CommandButton3.Enabled = False
    CommandButton4.Enabled = False
    CommandButton5.Enabled = True
    CommandButton6.Enabled = True
    End Sub
    
    Private Sub CommandButton4_Click() ' Botão para excluir
    Label1 = "EXCLUIR"
    TextBoxcodigo.Enabled = True
    CommandButton1.Enabled = False
    CommandButton2.Enabled = False
    CommandButton3.Enabled = False
    CommandButton4.Enabled = False
    CommandButton5.Enabled = True
    CommandButton6.Enabled = True
    End Sub
    
    Private Sub CommandButton5_Click() ' Botão OK - Insere  os dados na planilha cadastro de materiais
    ' Este código talvez será usado para dar valor ao estoque
    'Dim Data As Date  'Variavel para arrumar a data para dia   mes e ano
    'Dim valor As Single ' Variavel para rrumar valor para virgula
    'Data = TextBoxdata
    'valor = TextBoxdata
    
    v = Application.WorksheetFunction.CountA(Planilha3.Columns(1)) + 9 'Insere os dados na linha seguinte
    
    Planilha3.Cells(v, 1) = TextBoxcodigo.Text  'Insere o código SAP
    Planilha3.Cells(v, 4) = TextBoxdescricao.Text  'Insere a descrição
                                                        'Planilha3.Cells(V, 6) = Data  'Insere a data
    Planilha3.Cells(v, 17) = valor  'Insere o valor
    Planilha3.Cells(v, 8) = ComboBoxgrupo.Text 'Insere a utilização/grupo
                                                        'Planilha3.Cells(V, 7) = "=SUMIF(Entrada!C[-5],'Cadastro de materiais'!RC[-6],Entrada!C[-1])-SUMIF(Saída!C[-6],'Cadastro de materiais'!RC[-6],Saída!C[-3])" 'Insere o estoque
    Planilha3.Cells(v, 2) = TextBoxfabricante.Text  'Insere o código do fabricante
    Planilha3.Cells(v, 3) = TextBoxfornecedor.Text  'Insere o código do fornecedor
    Planilha3.Cells(v, 12) = TextBoxqt.Value ' Insere a quantidade de itens
    Planilha3.Cells(v, 9) = TextBoxqtmax.Value ' Quantidade máxima
    Planilha3.Cells(v, 11) = TextBoxqtinicial.Value ' Qunatidade inicial
    
    
    'Apaga todas as caixas e volta o VBA de inicio
    CommandButton6_Click
    
    End Sub
    Private Sub CommandButton6_Click() ' Botão cancel
    TextBoxcodigo = ""
    TextBoxdescricao = ""
    TextBoxdata = ""
    TextBoxvalor = ""
    TextBoxqt = ""
    TextBoxfabricante = ""
    TextBoxfornecedor = ""
    TextBoxlocalizacao = ""
    TextBox9 = ""
    TextBox10 = ""
    TextBoxqtmax = ""
    TextBoxqtinicial = ""
    ComboBox1 = ""
    TextBoxcodigo.Enabled = False
    TextBoxdescricao.Enabled = False
    TextBoxdata.Enabled = False
    TextBoxvalor.Enabled = False
    TextBoxqt.Enabled = False
    TextBoxfabricante.Enabled = False
    TextBoxfornecedor.Enabled = False
    TextBoxlocalizacao.Enabled = False
    TextBox10.Enabled = False
    TextBoxqtmax.Enabled = False
    TextBoxqtinicial.Enabled = False
    ComboBoxgrupo.Enabled = False
    CommandButton1.Enabled = True
    CommandButton2.Enabled = True
    CommandButton3.Enabled = True
    CommandButton4.Enabled = True
    CommandButton5.Enabled = False
    CommandButton6.Enabled = False
    
    
    End Sub
    
    Private Sub ListBox1_Error(ByVal Number As Integer, ByVal Description As MSForms.ReturnString, ByVal SCode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, ByVal CancelDisplay As MSForms.ReturnBoolean)
    
    End Sub
    
    Private Sub TextBoxcod(ByVal Cancel As MSForms.ReturnBoolean) ' Botão para consulta
    Dim Codigo As Single 'Variavel para utilizar o Procv
    Codigo = TextBox1
    TextBoxdescricao = Application.WorksheetFunction.VLookup(Codigo, Planilha3.Range("A:Z"), 2, 0) ' Este código fará o procv = Vlookup para consulta,todos os valores aparecerão
    TextBoxdata = Application.WorksheetFunction.VLookup(Codigo, Planilha3.Range("A:Z"), 6, 0)
    TextBoxvalor = Application.WorksheetFunction.VLookup(Codigo, Planilha3.Range("A:Z"), 8, 0)
    ComboBoxgrupo = Application.WorksheetFunction.VLookup(Codigo, Planilha3.Range("A:Z"), 3, 0)
    TextBoxfabricante = Application.WorksheetFunction.VLookup(Codigo, Planilha3.Range("A:Z"), 5, 0)
    TextBoxfornecedor = Application.WorksheetFunction.VLookup(Codigo, Planilha3.Range("A:Z"), 4, 0)
    TextBoxvalor = Format(TextBoxvalor, "R$ #,##0.00") 'Muda o valor da consulta para contavel
    TextBoxdata = Format(TextBoxdata, "DD/MM/YYYY") ' Muda o formato da data
    If Label1 = "CONSULTAR" Then
    TextBoxcodigo.Enabled = False
    Else
    If Label1 = " ALTERAR" Then
    TextBoxcodigo.Enabled = False
    TextBoxdescricao.Enabled = True
    TextBoxdata.Enabled = True
    TextBoxvalor.Enabled = True
    ComboBoxgrupo.Enabled = True
    TextBoxqt.Enabled = True
    TextBoxfabricante.Enabled = True
    TextBoxfornecedor.Enabled = True
    TextBoxlocalizacao.Enabled = True
    TextBox9.Enabled = True
    TextBoxqtmax.Enabled = True
    TextBoxqtinicial.Enabled = True
    Else
    If Label1 = "EXCLUIR" Then
    Else
    End If
    End Sub
    
    Private Sub TextBox10_Click()
    
    End Sub
    
    
    
    Private Sub TextBoxvalor_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    TextBoxvalor = Format(TextBoxvalor, "R$ #,##0.00")
    
    End Sub
    
    
    
    Private Sub UserForm_Initialize()
    'Este código serve para inserir as descrição ao ComboBox1
     Dim Maquinas As String
     
     For i = 4 To 1000
     Maquinas = Planilha5.Cells(i, 10).Value
    
        If Maquinas = "" Then
    
        GoTo Fim
        End If
    
     UserForm2.ComboBoxgrupo.AddItem Maquinas
    Fim:
     Next i
     
    End Sub
    

    segunda-feira, 14 de maio de 2018 14:39