Ir ao conteúdo
  • Cadastre-se

Excel VBA - TextBox


Posts recomendados

Pessoal estou com um problema quando tento transferir os dados de um formulário para uma planilha, tenho dois campos: DATA e VALOR. Quando digito por exemplo a data 03/04/08 ele transfere para o excel 04/03/08 e o campo valor ele transfere como texto ao invés de número.

Meu código:

Private Sub TextBox5_Exit(ByVal Cancel As MSForms.ReturnBoolean)

TextBox5 = Format(TextBox5, "dd/mm/yyyy")

Cancel = False

End Sub

Private Sub TextBox4_Exit(ByVal Cancel As MSForms.ReturnBoolean)

TextBox4 = Format(TextBox4, "#,##0.00")

Cancel = False

End Sub

Private Sub CommandButton1_Click()

With Worksheets("Registros")

.Cells(3, 5).Value = UserForm1.TextBox5.Value

.Cells(3, 6).Value = UserForm1.TextBox4.Value

End With

End Sub

Alguém pode me ajudar?

Link para o comentário
Compartilhar em outros sites

O problema de alterar o formato do TextBox5 para "mm/dd/yyyy" é quando o usuário digitar 03/04/2008 o valor do TextBox5 irá mudar para 04/03/2008, mesmo ele colando no Excel 03/04/2008 tenho medo do usuário forçar um erro ao ver escrito 04/03/2008 no formulário, gostaria que tanto o formulário quanto na tabela o Excel tivessem o mesmo formato. O engraçado que o formulário e a célula do Excel estão formatados como "dd/mm/yyyy".

Link para o comentário
Compartilhar em outros sites

  • 9 meses depois...

Olá pessoal to com o mesmo problema e não to conseguindo reslver, o meu código é muito mais simples.

Tenho formulário com um campo DATA é uma textbox. Criei um botão que chamei de buton_imprimir. ou seja quando alguem digitar a data no campo textbox ela vai ser jogada na planilha e em seguida essa planilha vai ser impressa.

O problema é o mesmo do pessoal, se digito na textbox 23/11/2008, é jogado na célula 11/23/2008.

Meu código:

Private Sub buton_imprimir_Click()

Worksheets("dados").Range("B26") = txt_data.Value

end sub

tá faltando o restante do código pra imprimir...

como faço pra corrigir isso galera!!!!!!!

Link para o comentário
Compartilhar em outros sites

Olá galera, conseguir resolver, gostaria de agradecer a Martina Angel pela dica, mas conseguir resolver de outra forma, basta inserir datevalue. veja como ficou meu código:

Worksheets("dados").Range("B26") = datevalue(txt_data.Value)

Agora to com uma dúvida, essa muito mais simples. Já fiz antes, só que agora não tá dando certo:

Tenho uma Label que chamei de Label_dia. quero exibir nessa label apenas o dia, mas por extenso, tipo segunda-feira.

tentei por Day(date) só que só mostra 1, no caso de segunda-feira

Link para o comentário
Compartilhar em outros sites

  • 5 meses depois...

Tenho o mesmo problema, tentei todas as possibilidades citadas aqui e ainda assim dá erro!

Só não dá erro quando eu coloco algum dia da data maior que a quantidades de meses no ano.

Exemplo, se eu colocra a data 03/01/09, quando sai do txtbox para a celula altera para 01/03/09. Já eu colocando 31/12/09 não altera nada!!

Código:

For x = 5 To 9

Cells(i, j).Value = Controls("textbox" & x).Text

j = j + 1

Next

sabendo-se que a coluna 4 recebo o valor do textbox4 que é uma data.

Link para o comentário
Compartilhar em outros sites

  • 2 meses depois...

Gostaria de saber de vocês como posso colocar data no userform de maneira que ela se organize assim 22/08/1970 sem que precise colocar as barrinhas e se isso É possivel no formulario que insere dados na planilha do excel . Se alguem puder me enviar passo a passo eu agradeÇo. Obrigado urim.

Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

Primeiramente peço desculpa por re-abrir este topico, vou dar uma dica para os que pesquisarem neste topico e tentar descobrir como proceder.

Meu código:

Private Sub TextBox5_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox5 = Format(TextBox5, "dd/mm/yyyy")
Cancel = False
End Sub

Private Sub TextBox4_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox4 = Format(TextBox4, "#,##0.00")
Cancel = False
End Sub

Private Sub CommandButton1_Click()
With Worksheets("Registros")
.Cells(3, 5).Value = UserForm1.TextBox5.Value
.Cells(3, 6).Value = UserForm1.TextBox4.Value
End With
End Sub

Eu apenas coloquei uma variavel no commandbutton1 com nome data e alterei o valor da igualdade da .Cells(3, 5).Value = UserForm1.TextBox5.Value, conforme abaixo:


Private Sub CommandButton1_Click()
[B]Dim Data As Date
Data = UserForm1.TextBox5.Value[/B]
With Worksheets("Registros")
.Cells(3, 5).Value = [B]Data[/B][COLOR="Green"] 'substitui o UserForm1.TextBox5.Value por Data[/COLOR]
.Cells(3, 6).Value = UserForm1.TextBox4.Value
End With
End Sub

Link para o comentário
Compartilhar em outros sites

  • 2 anos depois...

Boa tarde.

ve se isso te ajuda coloca o mes como texto segue o exemplo

03/04/2008 vai ficar assim 03/abr/2008

Private Sub CommandButton1_Click()

With Worksheets("Registros")

.Cells(3, 5).Value =Format(TextBox1.Value, "dd/mmm/yyyy")

vai ficar assim 03/abr/2008

.Cells(3, 5).Value =Format(TextBox1.Value, "dd/mmmm/yyyy")

ou Assim 03/abril/2008

End With

End Sub

faz um teste ai beleza.

ve se isso te ajuda coloca o mes como texto segue o exemplo

03/04/2008 vai ficar assim 03/abr/2008

Private Sub CommandButton1_Click()

With Worksheets("Registros")

.Cells(3, 5).Value =Format(TextBox1.Value, "dd/mmm/yyyy")

vai ficar assim 03/abr/2008

.Cells(3, 5).Value =Format(TextBox1.Value, "dd/mmmm/yyyy")

ou Assim 03/abril/2008

End With

End Sub

faz um teste ai beleza.

Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

Olá, prezados boa tarde

Há muito tempo uso do clubedohardware para sanar dúvidas e tem sido de muita ajuda!

Só que estou com o mesmo problema do tópico e não consegui resolver com as ajudas disponibilizadas, até pela minha falta de conhecimento. Meu conhecimento de vba é bem básico mesmo, quase pré-histórico.. kkk

Enfim, já tentei de tudo que é forma mas não dá certo. Preciso que a data seja importada no formato dd/mm/aaaa e ele só faz o contrário! (mm/dd/aaaa). Preciso que a importação correta ocorra em todos os textbox onde coloquei data (cxtData, cxtDataInternação, cxtDatadenascimento, cxtDataLiberação e cxtDataSentença)

 

Segue o código:

 

Private Sub bcoCarregardata_Click()
cxtData.Text = Format(Date, "dd/mm/yyyy") 'essa funciona na importação! Mas quando quero escrever a data, ao invés de clicar no botão, ele importa com dia e mês trocados
End Sub
 
 
Private Sub bcoInserirDados_Click()
 
MsgBox "Dados cadastrados com sucesso", vbExclamation, "Aviso"
ActiveCell.Offset(0, 0).Activate
ActiveCell.Value = Me.cxtData.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cxtNome.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cxtNºdoProcesso.Text
ActiveCell.Offset(0, 3).Activate
ActiveCell.Value = Me.cxtDatadenascimento.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboGenero.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboLocaldeResidencia.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboEscolaridade.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboUsadrogas.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboAto1.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboAto2.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboConcurso.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboArma.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboViolencia.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cxtDataInternação.Text
ActiveCell.Offset(0, 2).Activate
ActiveCell.Value = Me.cboOrigem.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboInstituição.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cxtDataLiberação.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboLiberação.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboGuia.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboJuizPlantonista.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cxtDataSentença.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboJuizSentença.Text
ActiveCell.Offset(0, 2).Activate
ActiveCell.Value = Me.cboRemissão.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboSentença.Text
ActiveCell.Offset(1, -27).Activate
End Sub
 
 
 
Private Sub bcoLimparFormulario_Click()
 
cxtData.Text = ""
cxtNome.Text = ""
cxtNºdoProcesso.Text = ""
cxtDatadenascimento.Text = ""
cboGenero.Text = ""
cboLocaldeResidencia.Text = ""
cboEscolaridade.Text = ""
cboUsadrogas.Text = ""
cboAto1.Text = ""
cboAto2.Text = ""
cboConcurso.Text = ""
cboArma.Text = ""
cboViolencia.Text = ""
cxtDataInternação.Text = ""
cboOrigem.Text = ""
cboInstituição.Text = ""
cxtDataLiberação.Text = ""
cboLiberação.Text = ""
cboGuia.Text = ""
cboJuizPlantonista.Text = ""
cxtDataSentença.Text = ""
cboJuizSentença.Text = ""
cboRemissão.Text = ""
cboSentença.Text = ""
End Sub
 
 
Private Sub bcoFecharFormulario_Click()
Unload Me
 
End Sub
Link para o comentário
Compartilhar em outros sites

Olá Camila, copie o cod abaixo e faça o teste...

abx.

 

Private Sub bcoCarregardata_Click()
cxtData.Text = Format(Date, "dd/mm/yyyy") 'essa funciona na importação! Mas quando quero escrever a data, ao invés de clicar no botão, ele importa com dia e mês trocados
End Sub
Private Sub bcoInserirDados_Click()

MsgBox "Dados cadastrados com sucesso", vbExclamation, "Aviso"
ActiveCell.Offset(0, 0).Activate
ActiveCell.Value = Format(Me.cxtData.Text, "dd/mm/yyyy")
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cxtNome.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cxtNºdoProcesso.Text
ActiveCell.Offset(0, 3).Activate
ActiveCell.Value = Format(Me.cxtDatadenascimento.Text, "dd/mm/yyyy")
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboGenero.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboLocaldeResidencia.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboEscolaridade.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboUsadrogas.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboAto1.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboAto2.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboConcurso.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboArma.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboViolencia.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Format(Me.cxtDataInternação.Text, "dd/mm/yyyy")
ActiveCell.Offset(0, 2).Activate
ActiveCell.Value = Me.cboOrigem.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboInstituição.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Format(Me.cxtDataLiberação.Text, "dd/mm/yyyy")
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboLiberação.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboGuia.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboJuizPlantonista.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Format(Me.cxtDataSentença.Text, "dd/mm/yyyy")
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboJuizSentença.Text
ActiveCell.Offset(0, 2).Activate
ActiveCell.Value = Me.cboRemissão.Text
ActiveCell.Offset(0, 1).Activate
ActiveCell.Value = Me.cboSentença.Text
ActiveCell.Offset(1, -27).Activate
End Sub



Private Sub bcoLimparFormulario_Click()

cxtData.Text = ""
cxtNome.Text = ""
cxtNºdoProcesso.Text = ""
cxtDatadenascimento.Text = ""
cboGenero.Text = ""
cboLocaldeResidencia.Text = ""
cboEscolaridade.Text = ""
cboUsadrogas.Text = ""
cboAto1.Text = ""
cboAto2.Text = ""
cboConcurso.Text = ""
cboArma.Text = ""
cboViolencia.Text = ""
cxtDataInternação.Text = ""
cboOrigem.Text = ""
cboInstituição.Text = ""
cxtDataLiberação.Text = ""
cboLiberação.Text = ""
cboGuia.Text = ""
cboJuizPlantonista.Text = ""
cxtDataSentença.Text = ""
cboJuizSentença.Text = ""
cboRemissão.Text = ""
cboSentença.Text = ""
End Sub


Private Sub bcoFecharFormulario_Click()
Unload Me

End Sub

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 5 meses depois...

Amigos, Sou novo neste fórum, achei interessannte as abordagens.

 

Estou começando a estudar VBA e criei um formulário de cadastro e estou com um problema semelhantes aos já abordado neste pagina.

 

activecell.offset(0,6).Value = txtregistro.text

 

e

 

txtregistro.text=activecell.offset (0,6). Value

 

Essas duas funções enseri um valor data em uam celular  só que acontece a mesma coisa, o valor sair invertido. Ex: 13/07/2015 vai pra planilha como 07/13/2015. quem poderia me ajudar a resolver esse problema.

 

Desde já agradeço

 

/

Link para o comentário
Compartilhar em outros sites

Basole,

Agradeço muito sua ajuda.

 

1º No meu fomrulário eu tenho varios comando. Cadastrar, anterior, proximo, exclui e atualizar.

 

No comando cadastrar e Atualizar que eu descarro as informanções e a formula que eu estou usando é essa

 

Activecell.offset(0,6).Value = Txtresgistro.

 

(Essa função que descarregar os dados do formulário na planilha, peço mil desculpas a outra informada e apenas localizar quiando eu uso o botão de anterior ou proximo

 

 

2º - Outro porblema que eu localizei no meu fomrulário é o seguinte:

 

Minha planilha tem duas data: data de registro e data que atendeu, ai uma funsão (se) informa se foi atendido no prazo ou fora do prazo.

 

isso eu digitando diretamente na planilha, mas quando eu descarrego as datas pelo formulário não funciona.

 

Ex: quando A2 >A3 colocar dentro do prazo. Só que eu lanço corretamente as informaçõe no fomrulário e quando vai pra planilha, não importa se resolveu a demanda ante dou depou do prazo. Parece que a planilha não recolhesse a data lançado da textbox e não alterar o resultado ficando sempre fora do prazo. Ai quando eu altero a data diretamente na planilha a funsão funciona.

 

Como eu resolveria isso.

Link para o comentário
Compartilhar em outros sites

Basole,

 

Agradeço muito o apoio, como sou novo no fórum ainda não muito familializado com o site. Mas vou melhorar.

Gostraia de saber se tem como me ajudar neste dois tópico. Meu programinha está todo perfeito só ainda não coloquei pra rodar pois não consegui resolver o problema da data invertida e tambem o problema que quando eu descarrego a data do formulário para o excel, a função que diz que se foi aprovado dentro do praso ou fora do prazo não funciona. Quando eu digito a data diretamente na planilha funciona nornal

Ele diz se quantos dias está pra vencer, Se foi atendido dentro do prazo ou fora do prazo. Mas quando eu insiro a data pela textbox, não funciona.

 

1º A formula que eu uso pra inseri a data é Activecell.offset(0,6). Value = txtregistro ( quando descarrego a data o valor sair invertido)

2º  O por que a função Se não funciona descarregado os dados da textbox

 

Desde Já agradeço o poaio

 

 

 

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...