Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
Por yurimr3193
#38809
Boa Tarde,

Estou desenvolvendo um formulário e gostaria que as respostas desse formulário fosse registrado em uma tabela. Estou tendo problema pois se a pessoa marcar duas ou mais checkbox's da mesma coluna(perguta do formulário), ele so registra na tabela a ultima marcada.
gostaria que caso haja mais de uma resposta na mesma coluna(pergunta do formulário), ele registrasse todas na mesma coluna da tabela porem em linhas diferentes.

segue o código até o momento:

'Identifica o tipo do objeto e insere se for um dos tipos definidos
Private Sub lsInserir(ByRef lTextBox As Variant, ByVal lSheet As String, ByVal lColunaCodigo As Long, ByVal lUltimaLinha As Long)
If (TypeOf lTextBox Is MSForms.TextBox) Or (TypeOf lTextBox Is MSForms.ComboBox) Then
Sheets(lSheet).Range(lTextBox.Tag & lUltimaLinha).Value = lTextBox.Text
Else
If TypeOf lTextBox Is MSForms.CheckBox Then
If lTextBox.Value = True Then
Sheets(lSheet).Range(lTextBox.Tag & lUltimaLinha).Value = lTextBox.Caption
End If
End If
End If
End Sub

'Loop por todos os componentes da tela
'formulario = Nome do UserForm atual
'lSheet = Nome da planilha aonde irão ser inseridos os valores
'lColunaCodigo = Coluna de referência para a inserção dos dados
Public Function lsInserirTextBox(Formulario As UserForm, ByVal lSheet As String, ByVal lColunaCodigo As Long)
Dim controle As Control
Dim lUltimaLinhaAtiva As Long

lUltimaLinhaAtiva = Worksheets(lSheet).Cells(Worksheets(lSheet).Rows.Count, lColunaCodigo).End(xlUp).Row + 1

For Each controle In Formulario.Controls
lsInserir controle, lSheet, lColunaCodigo, lUltimaLinhaAtiva
Next
End Function

'Limpa todos os objetos TextBox da tela
Public Function lsLimparTextBox(Formulario As UserForm)
Dim controle As Control

For Each controle In Formulario.Controls
If TypeOf controle Is MSForms.TextBox Then
controle.Text = ""
End If
Next
End Function


'Aciona o botão de limpar
Private Sub CommandButton1_Click()
lsLimparTextBox frmCadastro

TextBox1.SetFocus
End Sub
'Aciona o botão de inserir
Private Sub CommandButton2_Click()
lsInserirTextBox frmCadastro, "Cadastro", 1

lsLimparTextBox frmCadastro

TextBox1.SetFocus
End Sub

Private Sub UserForm_Click()

End Sub
________________
Exemplo
teve interferencia | choveu | cruzou com W |
checkbox ------checkbox------checkbox
checkbox ------checkbox------checkbox
checkbox------ checkbox------checkbox
checkbox------checkbox------checkbox

caso o usuario marque todas a checkbox por exemplo, quero que saia na tabela do excel assim:

A ------------------B ------------------ C
capition ------capition------ capition
capition ------capition----- capition
capition------ capition------ capition
capition------ capition ------ capition

caso o usuario marque as duas primeiras da primeira coluna e as duas ultimas da terceira coluna, ficaria:
A ------------------B ------------------ C
capition ---------(vazio)-------- capition
capition ---------(vazio)-------- capition
Por babdallas
#38825
Anexe o arquivo.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord