¿Cómo traducir meses automáticamente de un idioma a otro?

¿Cómo traducir meses automáticamente de un idioma a otro?

Me gustaría traducir un informe de facturación del portugués (Brasil) al inglés. Tiene una precisión de meses y es una hoja automatizada.
Un contrato puede comenzar en enero, pero normalmente también comienza en los otros 11 meses.

Si pongo el primer mes como abril, los otros once de la derecha siguen creciendo (mayo, junio, julio...) hasta marzo.

He creado esta fórmula:

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

del segundo al duodécimo mes.

Sin embargo, lo uso en portugués (Brasil) y funciona muy bien. Pero cuando llegas a un mes en inglés, realmente no funciona.

Lo he intentado [$-409]y no funciona como quiero.

Si uso esto, dice Janeiro y febrero, y error en los próximos meses.

Quiero anotar enero y recibir febrero, marzo y así sucesivamente.

Puede que funcione en su máquina, pruébelo también con otros idiomas, por favor.

Nota: VBA no funcionará, necesito enviárselo a mis clientes.

Respuesta1

Creo que lo que quieres no es posible de la manera que quieres.

Según sus comentarios, no puede cambiar la configuración regional del sistema porque este documento se puede usar en otras computadoras donde esto no es una opción.

La única solución que se me ocurre es usar VBa

En este ejemplo, estoy revisando toda la hoja de trabajo y reemplazando palabras por el equivalente.

En primer lugar, haga una copia de seguridad del archivo. No puedes deshacer 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

Tendrá que agregar el resto de los meses, pero debe ser sencillo y luego pensar en cómo se "traducen".

Ver también¿Cómo agrego VBA en MS Office?

Incluso podrías usar una declaración 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"

Esto significará que, cada vez que lo ejecutes, alternarás entre los idiomas.

Respuesta2

Ya lo arreglé, perdón por la tardanza.

Lo arreglé usando

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

donde "B3" es el número del mes, que cambia solo una vez, recuperado de la tabla dinámica.

El mes siguiente recibe +1, en lugar de "mes siguiente".

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

El IF se utiliza para reiniciar desde 1 si el mes anterior ya es 12. "Sin if, seguiría subiendo más allá de 13"

información relacionada