Função que escreve os dias da semana em dois ou mais idiomas | Excelmax Soluções e Controles

sexta-feira, dezembro 10, 2010

Função que escreve os dias da semana em dois ou mais idiomas

Função que escreve os dias da semana em dois ou mais idiomas

Macro, data, dia da semana, espanhol, inglês
Primeiro participante do Blog com uma sugestão específica para publicação: Solano Silva:
"Criar uma função que escreva os dias da semana em dois ou mais idiomas. Por exemplo: Domingo, Segunda-feira, ... e em Inglês: Sunday, Monday, ...".
Resposta:

Podemos criar uma função no próprio Excel, utilizando as funções que já existem e utilizando uma base de dados com os idiomas desejados. Porém, a melhor maneira que vejo para que isto seja feito, é criando uma função através do Visual Basic (VBA/Macros).

Na figura abaixo, vemos a macro/função que permite que o Excel escreva o dia da semana em 06 idiomas diferentes: Português, Espanhol, Inglês, Italiano, Francês e Alemão. Isto poderia ser ampliado para quantos idiomas fossem necessários ou desejados.

Macro, data, dia da semana, espanhol, inglês    
A figura abaixo, mostra o resultado da aplicação da função nos seis idiomas. 

Para que a função retorne o desejado, ele deve ser escrita obedecendo a sintaxe: '=DiaSemana(Dia; Idioma)', onde, Dia pode ser uma data digitada na própria célula ou pode ser uma referência a outra célula e, 'Idioma' é um número que indica o idioma que a função deve retornar.

Podemos observar esta numeração na figura abaixo. Exemplo: 1 = português, 2 = espanhol e assim por diante.

Macro, data, dia da semana, espanhol, inglês, tabel, idiomasPor enquanto era isso. Em caso de dúvidas, favor postar comentário.

E mais uma vez, obrigado ao amigo e seguidor do Blog, Solano Silva.

4 comentários:

  1. Muito bom Ivair, só não entendi como que com base no dia (numero)a macro identifica o dia da semana. Isso se dá através da variável abaixo?

    Dia = Weekday(Dia, vbSunday) - 1

    Mas muito legal, na verdade fantástica essa matriz

    ResponderExcluir
  2. Valeu Ivair! Resposta rápida e muito boa. Já havia visto algo parecido mas com um código muito maior e com dois idiomas. Você usou o comando array e com isso parece que resumiu a macro. Favor comentar algo sobre este comando.
    Parabéns. Assim que puder vou dar mais sugestões. Obrigado!

    ResponderExcluir
  3. Obrigado Solano pela sugestão e pelo comentário.
    Marcos, é isso mesmo que você comentou.
    A função Weekday (dia.da.semana) com base em uma data, retorna o dia em que a semana vai começar de acordo com o parâmetro vbSunday que retorna o número 1 (vbSunday = 1).
    Como uma matriz (array) começa a contar a partir de 0 (zero), fiz a subtração de vbSunday - 1 que é igual a zero para iniciar a busca a partir de domingo que é o primeiro item na macro.

    ResponderExcluir
  4. Olá Ivair. Estava revendo as postagens mais antigas e acabei encontrando esta. Muito Boa. Abraço. Solano S.

    ResponderExcluir

Seja um participante desta comunidade !
Deixe aqui seu comentário e/ou sugestão.
Obrigado !

Ivair Claudio Ferrari