Planilha de controle de férias Excel
Planilha de controle de férias Excel
27 de julho de 2013
Curso Excel Avançado - Guia do Excel
Curso Excel Avançado – Guia do Excel
5 de setembro de 2013

Planilha de Sorteio Excel VBA 2.0

Objetivo: Disponibilizar uma planilha Excel de sorteio que não repita os nomes sorteados e crie uma lista dos nomes já sorteados.

Esta é uma ideia do amigo Cleiton Domingues que me enviou por e-mail, obrigado Cleiton.

Esta planilha auxilia no sorteio de brindes em festas ou reuniões de empresas, bem como qualquer outro tipo de sorteio.

A planilha funciona da seguinte forma:

1. Na planilha Nomes para o sorteio apague todos os nomes que existem nesta lista e coloque um número ao lado de cada nome, pode preencher os dois primeiros números na coluna A somente, em seguida selecionar as células A1 e A2 e dar um duplo clique no cantinho inferior direito desta seleção para que esta lista seja preenchida automaticamente;

2. Agora a planilha já está pronta para funcionar. Clique no botão Limpar sorteados, a planilha irá limpar os dados da sua última utilização, aperte somente quando já houver terminado o sorteio de todos os nomes, pois ele limpará os nomes que já saíram;

3. Clique no botão Sortear, a planilha irá sortear aleatoriamente um nome na sua lista, guardará o nome sorteado na planilha Sorteados e retirará o nome que já saiu;

4. Ao concluir, clique na planilha sorteados aonde você terá todos os nomes que foram sorteados.

Abaixo o código fonte comentado:

'Debugar
'Dim l As Long

'Código principal que realiza o sorteio
Public Sub AleatorioEntreFixo()
    Dim lUltimaLinhaAtiva As Long
    
    Application.Volatile
       
    'Identifica a última célula ativa da lista
    lUltimaLinhaAtiva = Worksheets("Lista").Cells(Worksheets("Lista").Rows.Count, 2).End(xlUp).Row
    
    'Realiza o sorteio fazendo 100 vezes o randômico
    For i = 1 To 100
        Range("A7").FormulaR1C1 = "=VLOOKUP(RANDBETWEEN(1," & lUltimaLinhaAtiva & "),Lista!C[0]:C[1],2,0)"
    Next i
    
    'Debugar
    'Sheets("Nomes para o sorteio").Range("g" & (l + 1)).Value = "'" & Range("A7").FormulaLocal
    'l = l + 1
    
    'Desabilita a atualização de tela para ela não ficar "piscando"
    Application.ScreenUpdating = False
    
    'Copia o nome sorteado para a planilha de sorteados
    Range("A7").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    
    Range("A7").Select
    Selection.Copy
    Sheets("Sorteados").Select
    
    lUltimaLinhaAtiva = Worksheets("Sorteados").Cells(Worksheets("Sorteados").Rows.Count, 1).End(xlUp).Row
    
    If Range("A1").Value <> "" Then
        Range("A" & lUltimaLinhaAtiva + 1).Select
    Else
        Range("A" & lUltimaLinhaAtiva).Select
    End If
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    
    'Retira o nome já sorteado
    lsLocalizarApagar
    
    Sheets("Sorteio").Select
    
    'Volta a atualizar a tela
    Application.ScreenUpdating = True
    
End Sub

'Limpa os nomes sorteados
Sub lsLimparSorteados()
    lsCopiaNomesSorteio

    Sheets("Sorteados").Select
    Columns("A:A").Select
    Selection.ClearContents
    Range("A1").Select
    Sheets("Sorteio").Select
    'Debugar
    'l = 0
End Sub

'Copia os nomes do sorteio para a lista, os nomes que são colocados não são apagados
Sub lsCopiaNomesSorteio()
    Sheets("Lista").Select
    Range("A:B").Select
    Selection.ClearContents
    Sheets("Nomes para o sorteio").Select
    Range("A:B").Copy
    Sheets("Lista").Select
    Range("A1").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Range("A1").Select
    Sheets("Sorteio").Select
End Sub

'Localiza, apaga o nome sorteado e reordena os números do sorteio
Sub lsLocalizarApagar()
    On Error Resume Next
    
    Dim lColunaApagar As Long
        
    Range("A7").Copy
    Sheets("Lista").Select
    Columns("B:B").Select
    Sheets("Lista").Select
    Selection.Find(What:=Sheets("Sorteio").Range("A7").Value, After:=ActiveCell, _
                   LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, _
                   SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
    lColunaApagar = ActiveCell.Row
    Rows(lColunaApagar & ":" & lColunaApagar).Select
    Selection.Delete Shift:=xlUp
    
    lsColocaNumeros
    
    Sheets("Sorteio").Select
End Sub

'Coloca os números novamente do sorteio
Sub lsColocaNumeros()
    Dim lUltimaLinhaAtiva As Long
    
    Application.Volatile
       
    lUltimaLinhaAtiva = Worksheets("Lista").Cells(Worksheets("Lista").Rows.Count, 2).End(xlUp).Row

    If lUltimaLinhaAtiva > 1 Then
        ActiveCell.FormulaR1C1 = "1"
        Range("A2").Select
        ActiveCell.FormulaR1C1 = "2"
        Range("A1:A2").Select
        Selection.AutoFill Destination:=Range("A1:A" & lUltimaLinhaAtiva)
        Range("A1:A" & lUltimaLinhaAtiva).Select
        Range("A1").Select
    Else
        ActiveCell.FormulaR1C1 = "1"
    End If
End Sub

DIGITE O SEU EMAIL PARA FAZER O DOWNLOAD DOS ARQUIVOS:

Abraço

Marcos Rieper


Clique aqui e leia mais sobre Excel VBA. https://www.guiadoexcel.com.br/vba/ O Guia do Excel foi criado por Marcos Rieper e oferece artigos, dicas, tutoriais e modelos de planilhas prontas. Aqui você encontra tudo sobre Excel, seja de nível básico, intermediário,  avançado e VBA. O Guia do Excel oferece diversos materiais completamente gratuitos para download. Navegue em nosso site e confira! Conheça também a nossa Loja do Excel https://loja.guiadoexcel.com.br/
Cursos

Curso Excel Completo – Curso Excel Básico + Curso Excel Avançado – Acesso Vitalício

R$218,00 R$179,00

COMPRAR
Cursos

Curso Excel Master – Curso Excel Básico + Curso Excel Avançado + Curso VBA Excel + LP – Acesso Vitalício

R$357,00 R$249,00

COMPRAR
Cursos

Curso Excel PRO – Curso Excel Avançado + Curso VBA Excel + Lógica de programação – Acesso Vitalício

R$258,00 R$199,00

COMPRAR
Cursos

Curso Excel Web – Curso VBA Excel + Lógica de programação + Curso Web Scraping VBA- Acesso Vitalício

R$388,90 R$309,00

COMPRAR

44 Comentários

  1. Cremilson disse:

    Show de bola essa planilha Rieper, bem o que eu procurava!! Abraços

  2. Hugo Martins disse:

    Ótimo post, vai ser útil para mim.
    tem como fazer com que a planilha faça sorteio de mais de um nome?

  3. Pádua disse:

    Parabêns pela planilha Rieper.
    No entanto devo fazer uma observação. Ao testá-la percebo que vez por outra apresenta um erro “#N/D”. Porquê isto acontece?
    Se vc pudesse corrigir tal erro, esta planilha seria perfeita para meus objetivos.
    Abraços.
    Pádua

    • Marcos Rieper disse:

      Boa noite Pádua,

      Realizei alguns testes e está funcionando certinho, você preencheu a lista totalmente? Talvez tenha pulado algum item da lista.

      Pode baixar e realizar mais uns testes por favor?

      Abraço

      Marcos Rieper

  4. Pádua disse:

    Rieper,

    O referido erro aparece na planilha “Sorteados”.
    abraços,

    Pádua

  5. Também não consegui usar a planilha dá erro #nome e depois depurar o código, podes enviar a explicação para o meu e-mail

    • Marcos Rieper disse:

      Boa noite Adriana,

      Utilizamos bastante no final do ano na empresa, acredito que esteja ok, pode verificar se seguiu os seguintes passos?

      Colocar os nomes para o sorteio na planilha Nomes para o sorteio, depois clicar na planilha Sorteio e no botão Limpar sorteados e depois em Sortear.

      Os nomes sorteados constarão na planilha Sorteados e a planilha Lista constará sempre somente os nomes ainda não sorteados.

      Abraço

      Marcos Rieper

  6. Francisco Santiago disse:

    Senhores,
    Sensacional essa planilha, porém ao verificar os nomes sorteados, deve haver algum equivoco na formula pois no minimo 4 nomes não são sorteados, aparecendo como erro, podem me ajudar necessito disso URGENTE. Obrigado.

    • Marcos Rieper disse:

      Boa noite Francisco,

      Esta planilha é bastante utilizada na empresa em que trabalho, mas nunca houve nenhum erro, você está utilizando corretamente as planilhas?

      Quantos nomes são e quantas vezes é realizado o sorteio? Me passe por favor para eu poder testar novamente.

      Abraço

      Marcos Rieper

  7. ———- Mensagem encaminhada ———-
    From: Francisco Santiago
    To: “GUIADOEXCEL.COM.BR :: SEU MELHOR SITE SOBRE EXCEL”
    Cc:
    Date: Wed, 5 Feb 2014 20:50:31 -0200
    Subject: Re: [Guia do Excel:: Seu melhor site sobre excel do básico ao VBA] New Comment On: Planilha de Sorteio Excel VBA 2.0
    Grande Marcos,

    Obrigado pelo seu retorno, estou utilizando com 170 nomes, sorteando 170 vezes.

    Veja utilizarei para sorteio de vagas de garagem em meu condomínio, onde tem 170 vagas e tenho que fazer uma a uma, ou seja por 170 vezes.

    Saliento que mesmo sua planilha, em meus testes, depois de aproximadamente uns 50 sorteios, a falha aparece em sua planilha também, onde o nome colocado no sorteio e nos sorteados é #N/D por 5 vezes, nas linhas nº 56, 64, 95, 97 e 98.

    Pode me auxiliar?

    Agradeço desde ja sua colaboração, vai me quebrar um enorme galho.

    Abraços,

    Francisco Santiago

    Em 5 de fevereiro de 2014 20:21, GUIADOEXCEL.COM.BR :: SEU MELHOR SITE SOBRE EXCEL escreveu:
    There is a new comment on the post “Planilha de Sorteio Excel VBA 2.0”.
    http://guiadoexcel.com.br/planilha-de-sorteio-excel-vba-2-0

    Author: Marcos Rieper
    Comment:
    Boa noite Francisco,

    Esta planilha é bastante utilizada na empresa em que trabalho, mas nunca houve nenhum erro, você está utilizando corretamente as planilhas?

    Quantos nomes são e quantas vezes é realizado o sorteio? Me passe por favor para eu poder testar novamente.

    Abraço

    Marcos Rieper

    See all comments on this post here:
    http://guiadoexcel.com.br/planilha-de-sorteio-excel-vba-2-0#comments

    To manage your subscriptions or to block all notifications from this site, click the link below:
    http://guiadoexcel.com.br/?wp-subscription-manager=1&email=fransan%40ig.com.br&key=da07836eaabaf5e6942a3ad3066923d2

  8. SANTIAGO disse:

    Grande amigo,

    Conforme sua solicitação, estou tentando anexar a planilha que estou utilizando e que da um erro após alguns números sorteados, onde ao invés de aparecer o número do apto aparece #N/D, vai essa informação para os sorteados, sendo retirado da lista o número do apto correspondente, como em média acontece com 5 a 6 números compromete a integridade da planilha, pois não sabemos quem foi sorteado e nem a ordem que foi sorteado.

    Pode informar outro email que nao seja o guidoexcel@guidoexcel.com.br esse email nao recebe.

    Testei com várias quantidades, até com apenas 10 números e o erro se repete, mesmo com seu modelo acontece esse erro.

    Utilizo o excel, 2007 e 2010.

    Veja se me auxilia por favor…

    Abraços,

    Francisco Santiago
    fransan@ig.com.br
    santiago.advogados@hotmail.com

  9. Leandro disse:

    Tambem aparece esse erro para ND ja fiz de tudo e n consigo resolver esse problema!

    • Marcos Rieper disse:

      Boa noite Leandro,

      Eu realizei testes na planilha e ela está ok, primeiro coloque os nomes para o sorteio na planilha Nomes para o sorteio, depois clique no botão Limpar sorteados e por último clique no botão sortear.

      Sempre utilizamos esta planilha na empresa.

      Abraço

      Marcos Rieper

  10. Jailton disse:

    Marcos Rieper, boa noite!

    Quero lhe agradecer por ter disponibilizado esta planilha fantástica. Aqui esta funcionando tudo corretamente.

    Quero lhe perguntar duas coisas:

    1º No curso de Excel Avançado divulgado neste site, ensina como criar esta planilha?

    2º Tem como configurar a planilha para que ela fique rastreando o nome sorteado por mais tempo?

    Desde já muito obrigado!

    • Marcos Rieper disse:

      Boa noite Jailton,

      Muito obrigado pelo seu contato, e pelo retorno sobre a planilha, ficamos muito felizes com o feedback.

      Esta planilha foi criada com o uso de VBA, no curso de VBA não ensina exatamente á criar uma única solução, mas ter o conhecimento para que você possa entender códigos fontes VBA já criados e principalmente criar as suas próprias planilhas.

      Para guardar os dados dos sorteados copie apenas os dados da planilha sorteados e arquive a mesma.

      Abraço

      Marcos Rieper

  11. Esther disse:

    Prezado Marcos,

    Sensacional, já adaptei às minhas necessidades e está funcionando muito bem!

    Muito obrigada por compartilhar!!!

  12. Estava precisando muito de uma planilha como esta. Muito obrigado!

  13. José Madeira disse:

    Bom dia, baixei a planilha e a executei, mas deu o mesmo problema citado acima, aparecem ocorrências de #N/D as vezes nenhuma, as vezes 4 em um único sorteio. Pode ser alguma configuração do meu excel?

    Obrigado!

    • Marcos Rieper disse:

      Olá José,

      Por favor verifique se os números estão sequenciais e se não há intervalo entre os nomes do sorteio, pode ser este o problema.

      Outra dúvida, quantos nomes são, ás vezes pode ser que com poucos nomes haja algum erro, me avise para eu verificar.

      At.

      Marcos Rieper

      • José Madeira disse:

        Bom dia Marcos, os números são sequenciados de 1 a 16 e naturalmente 16 nomes em células ao lado de cada número. Usando a sua planilha com os 103 números e nomes, eu nunca detectei erro. Resolvi o problema fuçando aqui e ali, mas usando um pouco de criatividade. Se você me permitir, posso postar para quem tiver necessidade de algo parecido.

        Obrigado pela resposta

        Att

        José Madeira

  14. Diego disse:

    Olá Marcos, bom dia,

    Adorei seu site, e esta planilha de sorteio, porém eu precisava de uma com 1 (campo) a mais…
    fazemos algumas brincadeiras na Igreja e as vezes sorteamos casais… por isso gostaria de saber a possibilidade de inclusão de um campo a mais para que fosse realizado este sorteio(homem e mulher), se custar algo, me informe ou qual o passo que preciso seguir.

  15. RILTON disse:

    MUITO BOA!!

  16. Vadilson disse:

    Olá Marcos

    minha experiência com Excel é muito pouca, quase nada. Essa planilha veio me salvar pois eu não estava conseguindo fazer uma. tudo certo e funcionando. Porém quero fazer um sorteio ao vivo no fim deste mês para apenas um vencedor e a função de sortear ela roda muito rápido, não gera suspense. Seria possível de alguma forma fazer com que demorasse mais um pouco pra identificar o ganhador?

  17. Reginaldo disse:

    Olá, baixei a planilha e fiz alguns testes, percebi que ao clicar no botão “limpar sorteados” ele não apaga o último nome sorteado que aparece na célula A7 da planilha “sorteio”. Pode me ajudar?
    Abraço…

    • Reginaldo disse:

      Só para completar meu comentário, quando é sorteado o primeiro nome da célula A1 não está sendo apagado na planilha “lista”, com isso o nome é sorteado várias vezes.

    • Marcos Rieper disse:

      Sim Reginaldo,

      Já há uma nova versão agendada desta planilha, assine nossa newsletter e canal do youtube para saber quando estiver pronta e fazer o download da nova versão.

  18. Mauro Pires disse:

    Marcos, Bom dia!

    Fiz o Download da Planilha, mas o arquivo “zip” não abre, aparece aparece o aviso de que o caractere “ã” no nome do arquivo impede a extração…
    Há um aviso antes do Download onde se lê: “DIGITE O SEU EMAIL PARA FAZER O DOWNLOAD DOS ARQUIVOS:”… Pergunto: Onde??

    Pelo descritivo e pelo código fonte, me parece que esta planilha será exatamente o que eu estou precisando.

    Parabéns pela página, não a conhecia mas agora irei “passear” por ela para ver tudo.

    Abraços

  19. Francisco Carlos de Araújo Paiva disse:

    Não estou conseguindo abri a planilha, temos um sorteio para realizar no próximo dia 20/12, e não estou conseguindo abrir? teria como encaminhar eesa planilha de excel vba.
    Abgradecido.
    Francisco Paiva

  20. joao da cosa hlario disse:

    ola eu estou organizando um torneio de sinuca e gostaria do arquivo nao estou conseguindo baixar. pode me enviar por email?

  21. Railon Macedo disse:

    NAO ESTOU CONSEGUINDO BAIXAR A PLANILHA ELA VEM UM ARQUIVO ZIPADO….E QUANDO TENTO EXTRAI O ARQUIVO DAR ERRO

  22. TED GALVAO disse:

    No aguardo para avaliar

  23. Daniel Marcos de Souza disse:

    Parabéns Marcos, planilha excelente.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Inscreva-se no nosso canal do Youtube!


Junte-se ao nosso canal do Youtube. Começamos em abril de 2016, mas já temos mais de 06:00 h de treinamentos gratuitos e este número irá aumentar. Vídeos novos todos os sábados.