Como definir o formato da data ao inserir manualmente a data no excel, sem alterar as configurações regionais?

3

Na minha localidade, a data é inserida como dd / mm / aaaa ou variações disso (incluindo dd-mm-aa). Eu fiz um formulário do Excel (no arquivo Excel normal), já formatado para mostrar data como dd / mm / aaaa, mas quando eu digitei "05/04/2015" ele será mostrado como "04/05/2015". Eu sei que isso pode ser resolvido mudando o cenário regional para o meu ambiente local, mas eu preciso distribuir este formulário para muitas pessoas sem conhecimento de mudança de cenário regional, e assumindo que ninguém pode ensinar como, daí a minha pergunta: / p>

Existe alguma maneira de inserir "05/04/2015" e ser reconhecido como "5 de abril de 2015", sem ter que alterar as configurações regionais?

Nota adicional: Quando quero dizer "4 de 15 de maio" (digitado em 4/5/15), o Excel reconhecerá isso como "5 de abril de 15" porque o Excel aceita a entrada como formato "mm / dd / aa". Preciso alterar o comportamento padrão do Excel para assumir como "dd / mm / aaaa" , pois é assim que os usuários inserem.

Se possível, a configuração também deve ser incluída / incorporada no arquivo para permitir que os usuários finais usem o formulário sem alterar a configuração.

Não estou familiarizado com macros e VBA, mas estou disposto a testá-los:)

EDITAR: isso está relacionado à minha pergunta: Como alterar o formato de data de dd-mm-aaaa para dd-mm-aa na barra de fórmulas do MS-EXCEL?

mas não preciso alterar toda a barra de fórmulas, desde que o Excel reconheça que estou digitando no formato dd / mm / aa.

    
por Vylix 08.06.2015 / 07:02

6 respostas

1

O evento Worksheet_Change essencialmente pode realizar o que você está pedindo, mas é necessário ter certeza de que o usuário pretende que as coisas mudem. Adicionei uma caixa de opções 'Yes/No' à minha solução para evitar alterações acidentais. Fazer isso sem uma caixa de opções é arriscado, porque se você tentasse editar um valor existente, ele mudaria de volta para a formatação original.

Esse código deve "viver" dentro do código do VBA para a planilha na qual você deseja que ele atue:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim iDay, iMonth, iYear As Integer
Dim solutionRange As Range

'the cells you want the date to change for
Set solutionRange = Range("D4:D12")

'only triggers if the user's changing one cell
If Target.Count = 1 Then
    If (Not (Intersect(solutionRange, Target) Is Nothing) And (Target.Value > 0)) Then
        'disable application events so this change doesn't trigger itself
        Application.EnableEvents = False

        iDay = Left(Target.Value, 2)
        iMonth = Mid(Target.Value, 4, 2)
        iYear = Right(Target.Value, 4)

        ' Give the user a choice to say whether they need the date changed. You *can* remove both the 'If' and 'End If' if you really need to, but I'd strongly suggest keeping them.
        If (MsgBox("Have you entered your date in the format 'MM/DD/YYYY'?", vbYesNo) = vbYes) Then
            Target.Value = DateValue(iMonth & "/" & iDay & "/" & iYear)
        End If

        Application.EnableEvents = True
    End If
End If
End Sub
    
por 08.06.2015 / 15:47
2

Eu sei exatamente do que você está falando. Eu gosto de digitar YY-MM-DD. A configuração para alterá-lo para o que você deseja não está no Excel. A configuração desejada é no Windows. Está escondido em algum lugar no painel de controle "hora e idioma".

Eu tive que ir para uma configuração avançada "Alterar horário e formato de data" e alterar a configuração "Data abreviada".

Dependendo de qual sistema operacional você usa, as rotas podem ser um pouco diferentes.

Espero que isso ajude.

    
por 13.05.2017 / 03:02
1

Eu não acho que você possa alterar o padrão. É especialmente difícil consertar quando você importa dados do exterior.

As maneiras menos confusas de fazer isso eu posso pensar em algum tipo de forma manual ...

Opção 1: Podemos aceitar as entradas no formato texto e colocá-las nas células, desta forma o Excel não tentará interpretá-las como datas. Então, em uma célula adjacente, poderíamos usar a função DATE junto com LEFT, RIGHT e MID. Por exemplo (especifique que o usuário deve inserir a data em MM / DD / AAAA):

Célula A1: 04/05/2015

Célula B1: = DATA (DIREITA (A1,4), ESQUERDA (A1,2), MID (A1,4,2))

Opção 2: Solicite que o usuário insira o "dia", "mês" e "ano" em três células ou campos separados, o que pode ser melhor ou pior, dependendo da configuração.

De qualquer forma, boa sorte!

    
por 08.06.2015 / 12:08
1

Eu percebi isso com inspiração na resposta de Lance acima. Você pode alterar a configuração de data do Windows da seguinte maneira (não sabe como fazê-lo em outro SO):

  1. Abra o painel de controle
  2. Clique em "Alterar teclados e outro método de entrada" - a janela Região e idioma é exibida
  3. Altere a data abreviada para mm / dd / aaaa ou conforme desejar
  4. Alterar Data Longa para MMMM-dd-aa ou como desejar
  5. Clique em OK
por 06.07.2017 / 21:10
0

Realce a coluna em questão, clique com o botão direito do mouse na coluna selecionada, em seguida, Formatar células ... Selecione Personalizar e clique no campo Geral, digite "dd / mm / aaaa". Isso deve funcionar.

    
por 08.06.2015 / 07:15
0

Eu tive o mesmo problema ao atribuir um novo valor de dados ao meu celular usando o mesmo formato que ele já tinha

12-02-2018 seria mudado para 2 de dezembro de 2018, embora o formato da célula-alvo estivesse no mesmo formato.

Usando ..Range ("B10"). Value = DateValue (newdate) resolveu meu problema

    
por 19.03.2018 / 13:27