Notifications
Clear all

Data

15 Posts
2 Usuários
0 Reactions
1,439 Visualizações
(@vonzuben)
Posts: 549
Honorable Member
Topic starter
 

DateFormats = Array("m/d/yy;@")

Desse modo sai 2/18/2014, sendo que gostaria que fosse assim 18/02/2014

Tentei colocar assim pois não deu certo DateFormats = Array("d/m/yy;@")

Coloquei Data no excel como Português( Brasil ) *14/03/2001 etambém não deu certo.

 
Postado : 17/02/2014 10:24 pm
(@vonzuben)
Posts: 549
Honorable Member
Topic starter
 

segue o link onde tem o download do arquivo

http://www.vbaexpress.com/kb/getarticle ... =543#instr

 
Postado : 17/02/2014 10:52 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Veja se atende

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 18/02/2014 5:26 am
(@vonzuben)
Posts: 549
Honorable Member
Topic starter
 

Coloquei no VBA d/m/yyyy para deixar assim 18/02/2014, pois fui na cedula e coloquei personalizado dd/mm/aaaa, sendo que o excel não grava esse personalizado

 
Postado : 18/02/2014 8:57 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Coloquei no VBA d/m/yyyy para deixar assim 18/02/2014, pois fui na cedula e coloquei personalizado dd/mm/aaaa, sendo que o excel não grava esse personalizado

Aqui funcionou corretamente, altere a formatação na rotina conforme na figura e depois defina o Formato Personalizado.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 18/02/2014 10:47 am
(@vonzuben)
Posts: 549
Honorable Member
Topic starter
 

Coloco Personalizado dd/mm/aaaa e salvo, pois ele volta no Data 14/3/01

Estranho !

 
Postado : 18/02/2014 1:19 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Veja no anexo

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 18/02/2014 1:27 pm
(@vonzuben)
Posts: 549
Honorable Member
Topic starter
 

Não está funcionando quando clico na cedula amarelo, sendo que não abre o pop-up, pois no laranja está funcionando corretamente.

 
Postado : 18/02/2014 4:44 pm
(@vonzuben)
Posts: 549
Honorable Member
Topic starter
 

Quando clico na célula amarelo e depois em formatar células não fica como personalizado

 
Postado : 18/02/2014 4:54 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Estranho mesmo, fiz vários testes e não tive problemas e os dois exemplos que o Reinaldo anexou tambem funcionaram sem ter de alterar nada, se possivel compacte seu modelo e anexe para uma melhor analise.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 18/02/2014 9:11 pm
(@vonzuben)
Posts: 549
Honorable Member
Topic starter
 

segue em anexo

 
Postado : 18/02/2014 10:15 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Só para constar--> O código em questão somente irá funcionar se o formato da célula for o mesmo no código, o formato de data *14/3/2001 corresponde ao formato interno/vba --> m/d/yyyy (mês dia ano); porem os formatos iniciados com * são "afetados" pela configuração do sistema operacional, sendo que esse ultimo se sobrepõe.
Então utilize o código (por exemplo) DateFormats = Array("m/d/yyyy", "dd mmmm yyyy")

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/02/2014 4:57 am
(@vonzuben)
Posts: 549
Honorable Member
Topic starter
 

Assim funcionou !
Agora não sei porque quando coloquei personalizado dd/mm/aaaa o excel não grava.

 
Postado : 19/02/2014 9:21 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

A fim de contribuir, precebi que no calendario quando passamos o Mouse em cima das Datas, as mesmas estão invertidas fora do padrão "dd/mm/yy" (evento realizado pela proriedade "ControlTipText"), e dependendo da data clicada é enviada para a celula no padrão "m/d/yy", desta forma fazendo as alterações abaixo, teremos a exibição na data formato barsileiro e o lançamento na celula corretamente tambem.

Alteração na rotina para a correta exibição (ControlTipText) :
ALTERADO SOMENTE A LINHA REFERENTE A FORMATAÇÃO(CB_Yr.Value))), "m/d/yy")

Private Sub Build_Calendar()
    'the routine that actually builds the calendar each time
    If CreateCal = True Then
    CalendarFrm.Caption = " " & CB_Mth.Value & " " & CB_Yr.Value
    'sets the focus for the todays date button
    CommandButton1.SetFocus
    For i = 1 To 42
        
        If i < Weekday((CB_Mth.Value) & "/1/" & (CB_Yr.Value)) Then
            Controls("D" & (i)).Caption = Format(DateAdd("d", (i - Weekday((CB_Mth.Value) & "/1/" & (CB_Yr.Value))), _
                        ((CB_Mth.Value) & "/1/" & (CB_Yr.Value))), "d")
            
            Controls("D" & (i)).ControlTipText = Format(DateAdd("d", (i - Weekday((CB_Mth.Value) & "/1/" & (CB_Yr.Value))), _
                    ((CB_Mth.Value) & "/1/" & (CB_Yr.Value))), "dd/mm/yy")

        
        ElseIf i >= Weekday((CB_Mth.Value) & "/1/" & (CB_Yr.Value)) Then
            Controls("D" & (i)).Caption = Format(DateAdd("d", (i - Weekday((CB_Mth.Value) _
                            & "/1/" & (CB_Yr.Value))), ((CB_Mth.Value) & "/1/" & (CB_Yr.Value))), "d")
            
            Controls("D" & (i)).ControlTipText = Format(DateAdd("d", (i - Weekday((CB_Mth.Value) & "/1/" & (CB_Yr.Value))), _
                            ((CB_Mth.Value) & "/1/" & (CB_Yr.Value))), "dd/mm/yy")
        
        End If
        
        If Format(DateAdd("d", (i - Weekday((CB_Mth.Value) & "/1/" & (CB_Yr.Value))), _
                ((CB_Mth.Value) & "/1/" & (CB_Yr.Value))), "mmmm") = ((CB_Mth.Value)) Then
            If Controls("D" & (i)).BackColor <> &H80000016 Then Controls("D" & (i)).BackColor = &H80000018  '&H80000010
                Controls("D" & (i)).Font.Bold = True
        If Format(DateAdd("d", (i - Weekday((CB_Mth.Value) & "/1/" & (CB_Yr.Value))), _
            ((CB_Mth.Value) & "/1/" & (CB_Yr.Value))), "m/d/yy") = Format(ThisDay, "m/d/yy") Then Controls("D" & (i)).SetFocus
        Else
            If Controls("D" & (i)).BackColor <> &H80000016 Then Controls("D" & (i)).BackColor = &H8000000F
            Controls("D" & (i)).Font.Bold = False
        End If
    Next
        End If
End Sub

E no evento de cada Botão DIA alteramos da seguinte forma:

Private Sub D2_Click()
    ActiveCell.Value = CDate(D2.ControlTipText)
    Unload Me
End Sub

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/02/2014 1:12 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Caso seja necessário reabrir o tópico, o autor poderá enviar uma MP para um dos moderadores solicitando o desbloqueio.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 20/02/2014 7:56 pm