Notifications
Clear all

Como formatar Data via código

23 Posts
3 Usuários
0 Reactions
7,353 Visualizações
(@jcgmc)
Posts: 0
New Member
Topic starter
 

Boa noite,
Peço ajuda aos amigos. Pois Tenho o código abaixo, para formatação de Data em ??/??/??

Private Sub cdCadUltCont_keypress(ByVal keyascii As MSForms.ReturnInteger)
cdCadUltCont.MaxLength = 8
Select Case keyascii
Case 6
Case 13: SendKeys "(TAB)"
Case 48 To 57

If cdCadUltCont.SelStart = 2 Then cdCadUltCont.SelText = "/"
If cdCadUltCont.SelStart = 5 Then cdCadUltCont.SelText = "/"

Case Else: keyascii = 0

End Select
End Sub

Porém, não estou conseguindo fazer armazenar na Coluna "J" a data 11/07/15
A data está ficando invertida desta maneira 07/11/15
Como fazer pra conseguir ficar como 11/07/15 ?

Obrigado!

 
Postado : 11/07/2015 8:37 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Como nao colocou a linha em que joga a data para a planilha, tente :

Range("J1").Value = CDate(cdCadUltCont)

Pequise por Data invertida no forum e encontrara vários tópicos sobre esta questão.

 
Postado : 11/07/2015 9:29 pm
(@jcgmc)
Posts: 0
New Member
Topic starter
 

Boa noite Mauro, Tdo baumm!!
Taum, eu já pesquisei muito sim, porém nenhuma opção deu certo pra mim Rss
Qto a Linha, preciso q tda a coluna J seje formatada pra receber as datas com dias e mêses corretos ok!
Muito grato ao seu rápido retorno. :)

 
Postado : 11/07/2015 10:02 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

É como eu disse, você só colocou a rotina que usa para formatar a data quando digita no textbox, e não a que envia para a planilha, então coloque qual a rotina usa para que possa ter uma resposta mais precisa.

[]s

 
Postado : 11/07/2015 10:08 pm
(@jcgmc)
Posts: 0
New Member
Topic starter
 

Mauro,
Seria isso oq está pedindo?

No Form1, Utilizo o botão com este código:
Private Sub btCadCliente_Click()
CadastrarCadCliente

End Sub

E no Módulo,

Sub CadastrarCadCliente()
Linha = 5

Do Until Sheets("Clientes").Cells(Linha, 2) = ""
Linha = Linha + 1
Loop

Sheets("Clientes").Cells(Linha, 10) = UserForm1.cdCadUltCont.Text

MsgBox ("Cadastrado com Sucesso")
LimparCadCliente

End Sub

 
Postado : 11/07/2015 10:28 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Experimente uma das duas instruções :

Sheets("Clientes").Cells(Linha, 10).Value = Format(Me.cdCadUltCont.Text, "mm/dd/yyyy")

ou

Sheets("Clientes").Cells(Linha, 10).Value = CDate(cdCadUltCont.Value)

[]s

 
Postado : 11/07/2015 11:08 pm
(@jcgmc)
Posts: 0
New Member
Topic starter
 

Erro nas 2 opções :(
1ª Deu uso inválido palavra chave (amarelo em Me.)
2ª Deu Objeto obrigatório

??

 
Postado : 11/07/2015 11:31 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Erro nas 2 opções :(
1ª Deu uso inválido palavra chave (amarelo em Me.)
2ª Deu Objeto obrigatório

??

Jc, ewstou supondo que o controle "cdCadUltCont" é um textbox e está no formulário, se for isto não deveria dar erro, "ME" representa o form em que está o controle, de qualquer forma tente :

Sheets("Clientes").Cells(Linha, 10).Value = Format(UserForm1.cdCadUltCont.Text, "mm/dd/yyyy")
ou
Sheets("Clientes").Cells(Linha, 10).Value = CDate(UserForm1.cdCadUltCont.Value)

 
Postado : 12/07/2015 10:28 am
(@jcgmc)
Posts: 0
New Member
Topic starter
 

Boa tarde Mauro,
Me desculpe não ter especificado, mas não são TextBox, são ComboBox Ok!

 
Postado : 12/07/2015 12:13 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde Mauro,
Me desculpe não ter especificado, mas não são TextBox, são ComboBox Ok!

Jc, citei textbox, mas não importa qual controle, se o mesmo está no formulário as instruções que passei irão funcionar, se não der certo, alguma informação está passando despercebida e o ideal seria verificar direto no modelo.

[]s

 
Postado : 12/07/2015 12:58 pm
(@jcgmc)
Posts: 0
New Member
Topic starter
 

Negativo, os erros continuam :(

 
Postado : 12/07/2015 2:32 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Mauro e jcgmc

É por isso que eu só respondo tópicos com uma planilha de exemplo anexada.
A pior coisa que tem, é ficar dando tiro no escuro.

[]s

 
Postado : 12/07/2015 3:54 pm
(@jcgmc)
Posts: 0
New Member
Topic starter
 

Patropi, tdo baumm!
Cara oq eu kero fazer é coisa simples neh!!!
Olha só, qdo eu digito a data 11/07/15 manualmente, a celula aceita corretamente os números, mas qdo é via Form, o dia é trocado pelo mês. Então eu pensei em fazer um código que já deixe a coluna J, já pronta pra receber os números como em texto puro, independente de ser via Form, TextBox ou ComboBox tndeu!
E não achei q a coisa iria se arrastar tanto assim, por ser tão a toa pra VCs Experts do Planilhando. Rssss
Msm assim obrigado à VCs.
Abraço.

 
Postado : 12/07/2015 4:58 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

jcgmc

No VBA por padrão, o mês vem trocado, porque o padrão de data utilizado é o americano.
A solução proposta pelo Mauro é a indicada, pois ela corrige a formatação para o nosso padrão.
Não tem como deixar a coluna preparada, pois quando os dados forem lançados, se não tiverem essa instrução para modificar o formato, eles virão formatados como data formato americano.

[]s

 
Postado : 12/07/2015 6:50 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

O que o Patropi colocou está correto, e as instruções que passei tinham de a principio resolver, como eu disse alguma informação de sua parte não está correta ou não está fazendo da forma correta.
Quanto a aplicar formatação diretamente nas celulas você tem de utilizar NumberFormat, de uma olhada no tópico abaixo e veja se ajuda, se ainda assim não der certo, só com o modelo para analisar.

Formatar Celulas VBA
viewtopic.php?f=10&t=1827

[]s

 
Postado : 12/07/2015 9:12 pm
Página 1 / 2