Efeito de números decrescentes de matriz no Excel usando VBA

Índice

Eu sou um grande fã da série de filmes Matrix. É um trabalho incrível de sua época e uma das minhas séries de filmes de ficção científica favoritas.

Se você viu o Matrix, não há como você não se lembrar da sequência de código em queda.

Pensei em criar isso no Excel, mas alguém chegou antes de mim. Já foi criado e está disponível aqui.

Nitin Mehta, que o criou, usou algumas funções do Excel, formatação condicional e uma barra de rolagem para criar esse efeito.

Eu o modifiquei para remover a barra de rolagem e usei um código VBA. Agora você pode simplesmente clicar no botão play e os números começarão a cair sozinhos. Algo conforme mostrado abaixo:

Efeito de números decrescentes de matriz no Excel

Aqui estão as etapas para criar o efeito de números decrescentes da matriz no Excel:

  • Na primeira linha no intervalo A1: AP1, insira números aleatórios entre 0 e 9. Você pode inserir manualmente esses números ou usar a função RANDBETWEEN. Lembre-se de converter esses números em valores.
    • Reduza a largura da coluna para que fique visível em uma única tela.

  • No intervalo A2: AP32, insira a fórmula: = INT (RAND () * 10)
  • Copie e cole o código abaixo em um módulo no VBA
    #If VBA7 Then Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 'Para sistemas de 64 bits #Else Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)' Para sistemas de 32 bits #End If Sub MatrixNumberRain () i = 1 Do While i <= 40 DoEvents Range ("AR1"). Value = ii = i + 1 Sleep 50 Loop End Sub

Este código acima iria inserir o número de 1 a 4o na célula AR1. O código Sleep 50 atrasaria a entrada de números em 50 milissegundos. Se você executar este código, poderá ver o valor em AR1 ir de 1 a 40.

Agora precisamos especificar três regras de formatação condicional para dar cor a esses números.

Regra de formatação condicional nº 1

  • Selecione o intervalo A2: AP32, vá para Home -> Formatação Condicional -> Nova Regra

  • Na caixa de diálogo Nova regra de formatação, clique em ‘Usar uma fórmula para determinar quais células formatar’ e insira a seguinte fórmula:
    = MOD ($ AR $ 1,15) = MOD (ROW () + A $ 1,15)

  • Clique no botão de formato e defina a cor da fonte para branco

  • Clique OK

Regra de formatação condicional nº 2

  • Com o intervalo A2: AP32 selecionado, vá para Home -> Formatação Condicional -> Gerenciar Regra
  • Na caixa de diálogo Gerenciador de Regras de Formatação Condicional, clique em Nova Regra
  • Na caixa de diálogo Nova regra de formatação, clique em ‘Usar uma fórmula para determinar quais células formatar’ e insira a seguinte fórmula:
    = MOD ($ AR $ 1,15) = MOD (ROW () + A $ 1 + 1,15)
  • Clique no botão de formato e defina a cor da fonte para verde claro
  • Clique OK

Regra de formatação condicional nº 3

  • Com o intervalo A2: AP32 selecionado, vá para Home -> Formatação Condicional -> Gerenciar Regra
  • Na caixa de diálogo Gerenciador de Regras de Formatação Condicional, clique em Nova Regra
  • Na caixa de diálogo Nova regra de formatação, clique em ‘Usar uma fórmula para determinar quais células formatar’ e insira a seguinte fórmula:
    = OU (MOD ($ AR $ 1,15) = MOD (ROW () + A $ 1 + 2,15), MOD ($ AR $ 1,15) = MOD (ROW () + A $ 1 + 3,15), MOD ($ AR $ 1,15) = MOD (ROW () + A $ 1 + 4,15), MOD ($ AR $ 1,15) = MOD (ROW () + A $ 1 + 5,15))
  • Clique no botão formatar e defina a cor da fonte para verde claro.
  • Clique OK.

Com base no número da linha e no valor da primeira linha, a formatação condicional coloria o texto de verde, verde claro ou branco.

Agora selecione todo o intervalo de células (A1: AP32) e torne o fundo preto.

Como uma etapa final, insira uma forma / botão e atribua essa macro a essa forma / botão.

Observação: Como ele contém um código VBA, salve o arquivo com a extensão .xls ou .xlsm.

É isso! Agora pegue uma xícara de café, fique na sombra e aproveite a chuva digital Matrix caindo números 🙂

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave