Inquiridor
Programação em VBA - Critério para gerar código

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