Ola FarahA, obrigado pelas dicas, deixe me tentar explicar um pouco o que estou criando:
1 - Um userform onde o usuário pode incluir várias linhas (cada linha consta 8 textbox e 1 combobox), cada Txt tem uma função, como item, valor, data, Serie entre outros.
2 - O Usuário preenche a quantidade de linhas que deseja e com isso após preencher as linhas eu salvo em uma base.
3 - O problema que venho enfrentando é... quando utilizo outro botão (SALVAR), não consigo trazer as informações das linhas criadas dinamicamente. Mesmo inserindo o .name = "TXT"
4 - Abaixo o código que utilizo para salvar cada CBBox e TextBox que criei, sendo a linha com o codigo em amarelo cells(i+j,16)= PN_TXT o nome do meu primeiro textbox inserido dinamicamente.
Muito obrigado desde já
Private Sub GravaEimp_Click()
'Dim cont As Integer
Dim i As Integer
Dim wkbOrigem As Workbook
Dim wksOrigem As Worksheet
Dim result As VbMsgBoxResult
Dim j As Integer
Dim v As Integer
Dim PN_TXT As TextBox
With Application
.ScreenUpdating = False
.DisplayAlerts = False
If QITtxt = "" Then
MsgBox "Preencha a quantidade de itens de acordo com a Proposta/OC cliente", vbExclamation, "ATENÇÃO - FALTA DE PREENCHIMENTO"
QITtxt.SetFocus
Else
If CBCOU = "" Then
MsgBox "Preencha o campo país", vbExclamation, "ATENÇÃO - FALTA DE PREENCHIMENTO"
CBCOU.SetFocus
Else
If CBSALES = "" Then
MsgBox "Preencha o tipo de venda, Direta/Indireta", vbExclamation, "ATENÇÃO - FALTA DE PREENCHIMENTO"
CBSALES.SetFocus
Else
If CBDI = "" Then
MsgBox "Preencha o tipo de CLIENTE, PUBLICO/PRIVADO", vbExclamation, "ATENÇÃO - FALTA DE PREENCHIMENTO"
CBSALES.SetFocus
Else
If SFDCtxt = "" Then
MsgBox "Preencha o número da OPP do Sales Force", vbExclamation, "ATENÇÃO - FALTA DE PREENCHIMENTO"
SFDCtxt.SetFocus
Else
If DTRectxt = "" Then
MsgBox "Preencha a data de recebimento do Pedido do Cliente", vbExclamation, "ATENÇÃO - FALTA DE PREENCHIMENTO"
DTRectxt.SetFocus
Else
If CBCN = "" Then
MsgBox "Preencha o nome do cliente", vbExclamation, "ATENÇÃO - FALTA DE PREENCHIMENTO"
CBCN.SetFocus
Else
If CBINCO = "" Then
MsgBox "Preencha o Incoterm de acordo com a Proposta", vbExclamation, "ATENÇÃO - FALTA DE PREENCHIMENTO"
CBINCO.SetFocus
Else
If custpotxt = "" Then
MsgBox "Preencha a Orden de compra de acordo com a Proposta", vbExclamation, "ATENÇÃO - FALTA DE PREENCHIMENTO"
custpotxt.SetFocus
Else
If CBPTER = "" Then
MsgBox "Preencha a condição de pagamento de acordo com a Proposta", vbExclamation, "ATENÇÃO - FALTA DE PREENCHIMENTO"
CBPTER.SetFocus
Else
If contemailtxt = "" Then
MsgBox "Preencha a contato do cliente", vbExclamation, "ATENÇÃO - FALTA DE PREENCHIMENTO"
contemailtxt.SetFocus
Else
If contnametxt = "" Then
MsgBox "Preencha o nome do cliente", vbExclamation, "ATENÇÃO - FALTA DE PREENCHIMENTO"
contemailtxt.SetFocus
Else
If Me.CBSALES.Text = "INDIRECT" And Me.CBINCO.Text = "EXCEPTION" And Me.Exceptxt.Text = "" Then
MsgBox "É necessário ter uma razão para ter uma exeção, preencher motivo.", vbExclamation, "ATENÇÃO - FALTA DE PREENCHIMENTO"
Exceptxt.SetFocus
Else
Set wkbOrigem = Workbooks.Open("\ame-it-srv01DeptosSales_Operations5 - Base de bados SOPDBBANCO DE DADOS SALES OPS ITRON.xlsx")
Set wksOrigem = wkbOrigem.Worksheets("DB")
'Verificando a quantidade de linhas usadas na planilha
i = Range("A" & Rows.Count).End(xlUp).Row + 1
'Mensagem de gravação concluída
result = MsgBox("Are you sure you want to save?", vbYesNo + vbQuestion)
If result = vbYes Then
For j = 1 To QITtxt
'Selecionando a planilha a ser usada como banco de dados
Worksheets("DB").Select 'Armazenando na planilha os dados inseridos pelo usuário
Cells(i + j, 1) = i & "-" & j
Cells(i + j, 2) = CBCOU
Cells(i + j, 3) = CBSALES
Cells(i + j, 4) = CBDI
Cells(i + j, 5) = SFDCtxt
Cells(i + j, 7) = CBCN
Cells(i + j, 8) = CusIDtxt
Cells(i + j, 9) = custpotxt
Cells(i + j, 10) = CBINCO
Cells(i + j, 11) = CBPTER
Cells(i + j, 12) = DTRectxt
Cells(i + j, 22) = oftxt
Cells(i + j, 44) = contemailtxt
Cells(i + j, 45) = contnametxt
Cells(i + j, 34) = CBIOF
Cells(i + j, 35) = CBPD
Cells(i + j, 37) = CBFDT
Cells(i + j, 27) = CBFAC
Cells(i + j, 24) = CBWAR
Cells(i + j, 25) = CBPEN
Cells(i + j, 32) = CBNAM
Cells(i + j, 33) = nampltxt
Cells(i + j, 30) = CBSNA
[color=#FFFF40] Cells(i + j, 16) = PN_TXT & j[/color]
Next
Call apagaLinha
ActiveCell.Offset(1, 0).Select
MsgBox "Informações foram salvas com sucesso", vbInformation
Else
MsgBox "Informações não foram salvas", vbInformation
End If
'Comando para salvar e fechar planilha
ActiveWorkbook.Save
Workbooks("BANCO DE DADOS SALES OPS ITRON.xlsx").Close SaveChanges:=True
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
End With
'Limpando os campos após o cadastro
'CBCOU = ""
'CBSALES = ""
'CBDI = ""
'txt_cpf = ""
'txt_nascime = ""
'txt_ender = ""
'txt_numer = ""
'txt_bairro = ""
'txt_muni = ""
'txt_comple = ""
'txt_telef = ""
'txt_cel = ""
'txt_email = ""
'txt_cad_em = ""
'ComboBoxOperador = ""
'obs = ""
'Call LimpaControles
End Sub
Não consegui anexar meu projeto na conversa
Postado : 11/11/2019 7:51 am