Embaralha palavras

Segue aqui uma rotina que embaralha aleatoriamente uma lista de palavras.

O objetivo deste em específico é para criar testes para a minha filha maior, que está de férias, mas pode ter alguma outra utilidade, principalmente a sub-rotina de permutação.

Para deixar a tarefa um pouco mais simples, é possível manter a primeira e última letra.

Segue em anexo.

Anúncios

Como escolher cores arbitrárias no Excel

O Excel oferece muitas cores em sua paleta, porém é possível escolher arbitrariamente uma cor.

Em página inicial -> cores do tema, escolher Mais cores…

Vai aparecer o menu de cores. Ir na aba Personalizar.

Vai aparecer para preencher o código RGB da cor. Este número é uma combinação de Vermelho (Red), Verde (Green) e Azul (Blue), numa escala de 0 a 255 para cada cor (não por coincidência, 256 = 2^8).

Digamos que eu goste da cor amarelo ouro. Esta tem código RGB = (249, 166, 2).

E como saber o código RGB das cores? A internet tem várias fontes, mas para ajudar, o arquivo excel aqui é um simuladorzinho de cores RGB.

É necessário ativar macros para rodar.


Ideias técnicas com uma pitada de filosofia: https://ideiasesquecidas.com

Ferramentas Excel-VBA: https://ferramentasexcelvba.wordpress.com/

Tradução no Office 365

Todos os aplicativos do 365 têm uma função de tradução, em Revisão -> Traduzir.

Vai aparecer um menu de opções de idiomas. A API suporta os principais idiomas do mundo.

A API de tradução é da Microsoft, porém, como toda ferramenta do tipo, não é 100% confiável.

Exemplo: Chief Good = Bem Maior
Mas foi traduzido por “chefe bom”.

The Ends proposed = fins propostos
Traduzido como “extremidades propor”.

Antes do 365, tinha que recorrer ao Google translate. Agora, está bem mais fácil e este recurso pode ser de grande ajuda.


Ideias técnicas com uma pitada de filosofia: https://ideiasesquecidas.com

Ferramentas Excel-VBA: https://ferramentasexcelvba.wordpress.com/

Use a autocorreção a seu favor

Uma ideia que pode ser útil é saber usar a autocorreção do Office (vale para Excel, Word, Outlook, etc).

A autocorreção corrige automaticamente algumas palavras, normalmente para evitar erros comuns de grafia.


Ex.
automaticament (escrito sem o “e” final) -> automaticamente (corrigido, depois de terminar de escrever a palavra)

Esta também pode ser usada para cadastrar palavras de uso frequente. Digamos, quero que “lb” signifique “labor”.

Ir em Arquivo -> Opções -> Revisões de texto -> Opções de autocorreção. Isto abrirá a tela a seguir.

Acrescentar o termo “lb” para “label”.

Também é possível excluir algumas autocorreções que nos atrapalham.

Por exemplo, como escreve e-mails em inglês para algumas pessoas, há o “an” que a autocorreção muda para “na”. Para excluir essa facilidade excessiva que dificulta, é só procurar esta opção na lista e mandar excluir.


Ideias técnicas com uma pitada de filosofia: https://ideiasesquecidas.com

Ferramentas Excel-VBA: https://ferramentasexcelvba.wordpress.com/

O evento duplo-clique no VBA

É muito simples e útil atrelar um código VBA que responde ao evento de duplo-clique numa planilha Excel.

Com ALT+F11, abrimos a tela de edição do VBA.

Duplo-clique na Planilha 1, e escolher as opções Worksheet e BeforeDoubleClick, conforme imagem abaixo.

O “Before double click” indica que o código vai rodar logo após o duplo-clique, antes de qualquer outra coisa (tipo o usuário escrever na célula).

O “target” é range que foi duplo-clicado.

Para capturar exatamente a linha e a coluna que foi clicada, o código usou target.row e target.column.

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

If Target.Row = 3 And Target.Column = 4 Then

    MsgBox “Duplo clique detectado”

End If

Cancel = True

End Sub

Nota: daria para escrever de outras formas, exemplo If Target.Address = “$d$3” Then …

Resultado:

Download do exemplo.


Ideias técnicas com uma pitada de filosofia: https://ideiasesquecidas.com

Ferramentas Excel-VBA: https://ferramentasexcelvba.wordpress.com/

SEND + MORE = MONEY

Este é um puzzle mais ou menos famoso.

Um estudante saiu de casa, e semanas depois, o pai recebeu a mensagem cifrada abaixo, dele pedindo dinheiro. Quanto ele estava pedindo?

Dá um certo trabalho de resolver matematicamente, tem que ficar usando a lógica e testando as opções que restam.

Mas, como a lista é de Excel, é muito fácil resolver a mesma utilizando força bruta pura: Testar todos números possíveis, até encontrar uma solução.

Sugiro que o leitor tente resolver o puzzle do jeito matemático e do jeito VBA antes de prosseguir.

O jeito VBA

Primeiro, para reduzir o espaço de busca, basta notar que M = 1. Qualquer dois algarismos somados (ex. 7+5=12, 8+3 = 11) sempre vai ser menor igual a 19, então M= 1.

O “O” só pode ser zero, ou forçando muito, 1 (se S for 9 e vier 1 da soma anterior). Mas vamos testar com 0.

‘É óbvio que m =1 e o = 0

m = 1

o = 0

‘O resto é força bruta.

‘Testar dígitos de 2 a 9, porque zero e um já foram.

‘O jeito é fazer um for aninhado:

For s = 2 To 9

    For e = 2 To 9

        For n = 2 To 9

                For d = 2 To 9

                    For r = 2 To 9

                        For y = 2 To 9

Além disso, o enunciado diz que tem que ser algarismos diferentes por número.

O “if” verifica se os números são diferentes, só prossegue se forem.

For s = 2 To 9

    For e = 2 To 9

        If e <> s Then

        For n = 2 To 9

            If n <> s And n <> e Then

            Etc…

                        For y = 2 To 9

                        If y <> s And y <> e And y <> n And y <> d And y <> r Then

                                ‘Checa resposta

                                checar s, e, n, d, m, o, r, y

A subrotina de checar monta os números finais e faz a verificação.

send = 1000 * s_ + 100 * e_ + 10 * n_ + d_

more = 1000 * m_ + 100 * o_ + 10 * r_ + e_

money = 10000 * m_ + 1000 * o_ + 100 * n_ + 10 * e_ + y_

If send + more = money Then

    MsgBox “Eureka: ” & send & ” + ” & more & ” = ” & money

End If

E qual a resposta do puzzle?

Rode a rotina do arquivo para ver.


Ideias técnicas com uma pitada de filosofia: https://ideiasesquecidas.com

Ferramentas Excel-VBA: https://ferramentasexcelvba.wordpress.com/

Como utilizar a Barra de Rolagem do Excel

A barra de rolagem do Excel é simples e facilita a experiência ao usuário.
Para utilizar, Desenvolvedor -> Barra de Rolagem.

(Se a aba Desenvolvedor não estiver visível, ir em Arquivo –> Opções ->Personalizar faixa de opções . Em guias principais, marcar a opção de Desenvolvedor).

Download do exemplo aqui.

Clicar e arrastar o mouse para inserir a barra na posição desejada. Para mudar suas propriedades, clicar com o botão direito em cima dele e em Formatar controle…

Na caixa quer surgir, é possível estabelecer os valores mínimos, máximos, etc. A informação principal é o “Vínculo da célula”, que coloquei como a célula E3, mas pode ser qualquer uma.

O valor da barra de ferramentas vai ser gravado na célula E3.


Mas o truque só tem graça de verdade em conjunção com outras ferramentas.

Por exemplo, o valor da barra serve para rolar o mês que vai aparecer no gráfico, com o apoio da função “desloc”. Vide anexo ilustrativo.