Notifications
Clear all

FORMATAR DATA EM COLUNA COM DUAS FORMATAÇÃO

41 Posts
1 Usuários
0 Reactions
4,685 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Olá Pessoal, preciso da ajuda de vocês, quando exporto dados do meu sistema para excel a coluna fica com duas formatações, do dia 1 a 15 a formatação e de data "mm/dd/aaaa" e do dia 16 a 30 ou 31 a formatação e de Geral "dd/mm/aaaa", gostaria que ficasse com uma única formatação "dd/mm/aaaa" desde que eu possa usar as datas para outras formulas.

silva_jmp

 
Postado : 08/06/2012 5:06 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa noite!!

É provável que isto não te ajude mas, tente...

Sub MudarFormatoDataPara()

    Dim NomeVariant As Long
     
    With ThisWorkbook.Sheets(1)
         
        NomeVariant = .Cells(Rows.Count, 1).End(xlUp).Row
        With .Range("A2").Resize(22)'coloque o tamanho da coluna 
             
            .NumberFormat = "dd/mm/yyyy"
        End With
    End With
End Sub
 
Postado : 08/06/2012 5:35 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Alexandre, obrigado por me ajudar, mas realmente não deu certo, na verdade, não deve efeito nenhum, não sei se esta faltando alguma coisa.
Fico aguardando outros colegas ou se você tiver maneira, já agradeço.

silva_jmp

 
Postado : 08/06/2012 7:14 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa noite!!

Mais uma pergunta....você precisa alterar do 01 até o dia 15 de acordo com o formato dd/mm/yyyy?

Exemplo:
mm/dd/yyyy--> para dd/mm/yyyy
6/1/2012
6/1/2012
6/1/2012
6/2/2012
6/2/2012
6/2/2012
6/3/2012
6/3/2012

01/06/12
01/06/12
01/06/12
02/06/12
02/06/12
02/06/12
03/06/12
03/06/12

 
Postado : 08/06/2012 7:25 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa noite!!

Talvez ainda não te ajude, se poder detalhar mais ainda sua explicação.

Sub AleVBA_Reformatar()
    Dim rngCell As Range
    For Each rngCell In Selection
        If IsDate(rngCell.Value) Then
            rngCell.Value = Format(rngCell.Value, "dd/mm/yyyy")
        End If
    Next rngCell
End Sub
 
Postado : 08/06/2012 7:43 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Desculpe a intromissão.O excel ao reconhecer uma dado recebido como data, tenta formata-lo/adapta-lo aos valores/formatos definido no sistema operacional local automaticamente.
Para "dias" superiores a 12, é adapatado corretamente, porem para os valores inferiores e confundido com mes(formatação m/d/yyyy) que é; apesar da formatação local; o padrão interno no excel. A proposta efetuada pelo Alexandre é um paliativo.
Para "eliminar" o problema é necessario saber como é feita a importação dos dados, , pois esse problema de "formatação" deve ser corrigido nessa importação.

 
Postado : 09/06/2012 7:17 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Alexandre, bom dia,
Obrigado novamente, mas ainda não deu certo, eu acho que estou fazendo alguma coisa errada, pois quando executo a macro, não faz efeito nenhum, da uma olhada no anexo, da uma olhada.

Reinaldo, bom dia,
Realmente o problema vem do relatório do meu sistema, quando peço para o relatório passar para Excel, ela fica essa caca, já pedi para o pessoal da TI resolver, mas como envolve orçamento para o conserto do problema, a empresa não quer pagar, por causa disso faço manualmente o processo de alterar as datas para o formato correto, mas perde-se muito tempo para isso.

Sugestão de um ignorante em VBA: Se cria-se outra coluna (nome: Dt_Correta), onde a macro reconheceria se a data da coluna Dt_Incorreta fosse com os dias de 1 a 15, iria para o formato dd/mm/aaaa, e se a data da coluna Dt_Incorreta fosse com os dias de 15 a 30 ou 31, iria para o formato dd/mm/aaaa, ambas com formatação de data.

silva_jmp

 
Postado : 09/06/2012 8:38 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Silva, o mais importante!!!
Como os dados do relatori de sistema são "passados" no excel?

 
Postado : 09/06/2012 9:46 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Reinaldo

Na tela do sistema onde tem a visualização do relatório, existem várias opções e entre elas a de transferir os dados para Excel, portanto e o próprio sistema que faz isso.

silva_jmp

 
Postado : 09/06/2012 10:25 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Então experimenta assim:
(Altere a coluna de acordo com a que contem seus dados)

Sub AlteraDt()
    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 3), TrailingMinusNumbers:=True
    Range("A1").Select
End Sub
 
Postado : 09/06/2012 10:50 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

:roll: Reinaldo, a principio coloquei a macro no botão, testei e deu certo, mas depois copiei a coluna da data do relatório original e colei na planilha teste a que nos estamos usando, testei novamente e não deu certo. Coloquei uma formula na coluna B que busca a data da coluna A como referencia, caso a data este correta a formula ira dar o resultado esperado.

:| Da uma olha na planilha, vê se esta correto a forma que eu coloquei.

silva_jmp

 
Postado : 09/06/2012 12:07 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Realmente, no codigo não está funcionando, e não sei o porque, e estou um pouco enrrolado para pesquisar o motivo; então Teste "manualmente"; e rapido e facil. Obs.: Uma unica coluna por vez.
Selecione a coluna com as datas a serem alteradas(se for coluna "A", clique em cima da letra A, selecionando toda a coluna); vá em: (2003) Dados --> Texto para Colunas; clique em avançar duas vezes; na tela que se "abre" selecione (em Formato de dados da Coluna, superior à esquerda) Data e no combo ao lado selecione "MDA" (para mes dia e ano) e clique em concluir. Deve ficar ok. Para o 2007e/ou 2010 a função texto para colunas (se não me engano) esta tb na "barra" Dados

 
Postado : 09/06/2012 12:48 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Reinaldo, na forma manual conforme sua orientação via Dados>Texto para colunas, deu certo, vou gravar uma macro, para resolver por agora, mas por favor se for possível ao seu tempo me dê outro alternativa sem ser a manual.

Desde já agradeço.

silva_jmp

 
Postado : 09/06/2012 1:09 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa noite, cara da maneira que eu entendi e do exemplo da planilha que mandou faz o seguinte,
cria um botão active x

e coloca o codigo

Range("A16:A31").NumberFormat = "d/m/yyyy"

oque vai ocorrer como o relatório estar trazendo a data como se fosse a original m/d/yyyy se inverter o padrão ela vai ficar correta.

abç

 
Postado : 09/06/2012 9:22 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Desculpe amigo segue o codigo abaixo com a correção.
segue o mesmo comentario acima so que com esse código
Range("A8:A13").NumberFormat = "mm/dd/yyyy"

att

 
Postado : 09/06/2012 9:31 pm
Página 1 / 3