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"