Como traduzir meses automaticamente de um idioma para outro?

Como traduzir meses automaticamente de um idioma para outro?

Gostaria de traduzir um relatório de faturamento do português (Brasil) para o inglês. É preciso por meses e é uma planilha automatizada.
Um contrato pode começar em janeiro, mas geralmente também começa nos outros 11 meses.

Se eu definir o primeiro mês como abril, os outros onze à direita continuam crescendo (maio, junho, julho...) até março.

Eu criei esta fórmula:

=PROPER(TEXT((B1&1)+31;"mmmm")) 

do segundo ao décimo segundo mês.

Porém eu uso em português(Brasil), e funciona muito bem. Mas quando se chega a um mês em inglês, isso realmente não funciona.

Eu tentei [$-409]e não funciona do jeito que eu quero.

Se eu usar isso, vai tipo Janeiro e Fevereiro, e erro nos próximos meses.

Quero anotar janeiro e receber fevereiro, março e assim por diante.

Pode funcionar na sua máquina, experimente também com outras linguagens, por favor.

Obs: VBA não funciona, preciso enviar para meus clientes.

Responder1

Acho que o que você quer não é possível da maneira que você quer.

De acordo com seus comentários, você não pode alterar as configurações de localidade do sistema porque este documento pode ser usado em outros computadores onde esta não é uma opção

A única solução que consigo pensar é usar VBa

Neste exemplo, estou examinando toda a planilha e substituindo palavras pelo equivalente

Primeiro, faça um backup do arquivo. Você não pode desfazer o VBa

Sub ChangeTheNameMeHearties()

Dim cell As Range

For Each cell In ActiveSheet.UsedRange
    Dim s As String
    Select Case LCase(cell.Value)

        Case cell.Value = "january"
            cell.Value = "Janeiro"

        Case cell.Value = "february"
            cell.Value = "Fevereiro"

    End Select
Next

End Sub

Você precisará adicionar o restante dos meses, mas deve ser simples, e então pensar em como eles 'traduzem'

Veja tambémComo adiciono VBA no MS Office?

Você pode até usar uma declaração de caso como

    Case cell.Value = "january"
        cell.Value = "Janeiro"

    Case cell.Value = "janeiro"
        cell.Value = "January"

    Case cell.Value = "february"
        cell.Value = "Fevereiro"

    Case cell.Value = "fevereiro"
        cell.Value = "February"

Isso significa que, cada vez que você executá-lo, você alternará entre os idiomas

Responder2

Já consertei, desculpe a demora.

eu consertei usando

=PROPER(TEXT((DATE(2014,B3,1)),"mmmm"))

onde “B3” é o número do mês, que muda apenas uma vez, recuperado da Tabela Dinâmica.

O mês seguinte recebe +1, em vez de "próximo mês".

=IF(B3<12,B3+1,1)

O IF é usado para reiniciar a partir de 1 se o mês anterior já for 12. "Sem se, ainda continuaria subindo além de 13"

informação relacionada