Função que escreve os dias da semana em dois ou mais idiomas
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.
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.
E mais uma vez, obrigado ao amigo e seguidor do Blog, Solano Silva.
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?
ResponderExcluirDia = Weekday(Dia, vbSunday) - 1
Mas muito legal, na verdade fantástica essa matriz
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.
ResponderExcluirParabéns. Assim que puder vou dar mais sugestões. Obrigado!
Obrigado Solano pela sugestão e pelo comentário.
ResponderExcluirMarcos, é 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.
Olá Ivair. Estava revendo as postagens mais antigas e acabei encontrando esta. Muito Boa. Abraço. Solano S.
ResponderExcluir