Formato de data mundial no Excel

2

Em um Mac Mountain Lion, localidades dos EUA, estou trabalhando em uma planilha com macros como

TEXT(TODAY(), "yyyy-mm-dd")&" is the date"

O problema é que a planilha também é usada em computadores configurados com o idioma francês, onde a macro espera

TEXT(TODAY(), "aaaa-mm-jj")&" is the date"

e exibe #VALUE (já que a é para annee / year e j é para jour / day em francês, não y e d ).

Existe uma maneira - estilo macro - de tornar este formato "aaaa-mm-dd" mais internacional, ou forçar o Excel a usar o formato "ymd" mesmo em um Mac usando o idioma francês?

(se possível, fazendo isso na mesma célula, isto é, sem adicionar uma nova célula com uma data dentro e depois referenciada na célula exibida, já que eu quero modificar a planilha o menos possível)

    
por Ring Ø 15.11.2013 / 10:06

2 respostas

1

Eu tenho o mesmo problema; aqui está a resposta postada ao meu pedido Aqui

====================================
Private Sub Workbook_Open()
With Application
    Select Case .International(xlDateOrder)
        Case 0   'mdy
            ThisWorkbook.Names("DateFormat").Value = _
                .International(xlMonthCode) & _
                .International(xlDateSeparator) & _
                .International(xlDayCode) & _
                .International(xlDateSeparator) & _
                .International(xlYearCode) & _
                    .International(xlYearCode)

        Case 1  'dmy
            ThisWorkbook.Names("DateFormat").Value = _
                .International(xlDayCode) & _
                .International(xlDateSeparator) & _
                .International(xlMonthCode) & _
                .International(xlDateSeparator) & _
                .International(xlYearCode) & _
                    .International(xlYearCode)

        Case 2 'ymd
            ThisWorkbook.Names("DateFormat").Value = _
                .International(xlYearCode) & _
                    .International(xlYearCode) & _
                .International(xlMonthCode) & _
                .International(xlDateSeparator) & _
                .International(xlDayCode)
    End Select
End With
End Sub

Você só precisa definir o nome "DateFormat" na pasta de trabalho e usá-lo em fórmulas como = TEXT (A1, DateFormat)

Atenciosamente

    
por 06.12.2013 / 17:02
1

Acabei de escrever minha própria função definida pelo usuário como

Public Function DATE_FORMAT(dt as Date, fmt as String) as String
    DATE_FORMAT = Format(dt, fmt)
End Function

Ele usa o fato de que o VBA funciona sempre com a localidade dos EUA, portanto, sempre posso usar D e M e Y como parte da minha string de formato.

Você pode usar a fórmula do Excel =DATE_FORMAT(A1, "YYYYMMDD") mesmo em locais fora dos EUA / Reino Unido.

    
por 20.05.2014 / 23:39