Gerar os números aleatórios não seria tarefa tão difícil. Até aí tudo bem. Poderíamos rapidamente obter a solução utilizando uma simples combinação de fórmulas diretamente digitadas nas células da planilha. Isto resolveria o problema?
Em parte sim. Mas, os números gerados poderiam ser repetidos. Não teria como controlar isso, pois seriam gerados aleatoriamente.
Então, através de um algorítimo simples, faremos a verificação de possíveis duplicidades decorrentes do processo randômico de extração de números. Utilizamos esta mesma técnica para realizar sorteios diversos e podemos adaptar para múltiplos casos e finalidades.
Ola, nesse caso seu eu quiser que sejam sorteados 16 numeros, do 1 ao 25, como ficaria? eu tentei, consegui fazer sortear os 116 numeros substituindo o "8" por 16 e o 'h1" por "p1".... so que eu queria que fosse sorteados aleatoriamente 16 numeros dentro dos 25. Parabens pelo posto gostei muito do site, ta em favoritos!Obrigado
Como faço para selecionar aleatoriamente linhas, porém os números q contém estas linhas não estão em sequência, onde tentei usando a fórmula =aleatórioentre porem ela puxou números q não contiam nas células ou seja ela seguiu a sequência numérica e eu preciso q selecione somente estes dados que estão na tabela. Existe outra fórmula?
[variável] é uma variável de um dos tipos de objetos válidos para a linguagem VBA no contexto do Microsoft Excel, por exemplo, String, Integer ou mesmo Workbook ou Worksheet.
[coleção] é uma variável do gênero coleção do VBA. Variáveis de coleção são como "Arrays", só que um pouco mais inteligentes.
Utilizaremos à estrutura For Each para acessar as informações de todas as planilhas contidas em uma pasta de trabalho.
Ao abrir uma pasta de trabalho, por padrão o Microsoft Excel criar três planilhas de nomes Plan1, Plan2 e Plan3como mostra a figura:
O que queremos é ter acesso às informações das planilhas, não importam quantas existam e em que ordem estejam. O VBA disponibiliza coleções padrão que refletem objetos do Microsoft Excel. Para nosso caso, utilizaremos o objeto Worksheet e a coleção Worksheets.
Suponto que quiséssemos uma lista de nomes de todas as planilhas e preenche-la em nossa planilha Plan1. O código para executar a tarefa segue abaixo:
lin e col são variáveis inteiras que armazenarão os valores de linha e coluna respectivamente da célula ativa na pasta de trabalho;
Após declarar as variáveis necessárias (linhas 2, 3 e 4), o código captura as coordenadas de linha (linha 4) e coluna (linha 5) da célula ativa na pasta de trabalho para poder acessá-la posteriormente. Em seguida o código efetua o laço For Each na coleção de planilhas (linha 6 a 9).
O laço For Each sabe que deve fazer uam varredura em todos os itens contidos na coleção informada. Não é necessário incrementos ou verificações de quantidade como é o caso do laço For ... Next tradicional ou mesmo oWhile ... Wend. O laço For Each garante que todos os itens da coleção serão contemplados na varredura.
Em nosso código, a garantia é que as instruções das linhas 7 e 8 serão executas o número de vezes que corresponde a quantidade de planilhas existente na pasta de trabalho. A linha 7 pega o nome da planilha (propriedade Name no objeto Worksheet, representado pela variável wsheet em nosso código) e envia para a célula com base das coordenadas das variáveis lin e col. A linha 8 apenas soma 1 à variável lin para que o código "pule" para a célula logo abaixo da que acabou de ser preenchida.
Para testar a eficácia do código, tente excluir, inserir ou renomear qualquer planilha. Logo após isso, execute o código novamente. Veja que sem mudar o código, o laço For Each conseguiu alcançar todas as planilha existentes na coleção Worksheets. O VBA junto com o Microsoft Excel disponibiliza uma série de coleções prontas para facilitar nosso trabalho. Dentre elas, algumas das mais utilizadas são:
Conforme a lógica de funcionamento do For Each, se não existir nenhum elemento na coleção, o bloco de código interno não será executado.
É importante dizer que para não haver erros no código, é requerido que o tipo da variável seja compatível com o tipo da coleção.