Notifications
Clear all

[Resolvido] Sorteio com critério

11 Posts
4 Usuários
0 Reactions
1,625 Visualizações
(@andregomesmac)
Posts: 11
Active Member
Topic starter
 

Tenho uma planilha com 700 números, nomes e status da rifa, preciso sortear com critério de status pago. Sortear somente se o status for "PAGO"

__________________________________________
Editado pela moderação. Motivo: Não poste o texto todo em caixa alta pois na internet é considerado como estar gritando.
 
Postado : 03/06/2021 5:11 pm
(@topscore)
Posts: 41
Eminent Member
 

@andregomesmac

Dei uma olhada bem rápida no seu arquivo. Sugiro o seguinte:

Faça uma coluna, que ficará oculta ao usuário, somente com os nomes de quem pagou. Aplique seu código para sortear nessa coluna.

Se não quiser deixar uma coluna oculta, faça seu código criar essa coluna, sortear, e apagar depois.

 
Postado : 05/06/2021 9:36 am
muca
 muca
(@muca)
Posts: 36
Eminent Member
 

Veja se resolve

 

Sub sorteio()
Dim celula As String
Dim resultado As Integer
    Pagos
    LINHA = 1
    celula = "E" + CStr(LINHA)
    i = Plan1.Range(celula).Value
    
        While i <> ""
        LINHA = LINHA + 1
        celula = "E" + CStr(LINHA)
        i = Plan1.Range(celula).Value
        Wend
        
        LINHA = LINHA - 1
        celula = "E" + CStr(LINHA)
        i = Plan1.Range(celula).Value
       
            Randomize:
            resultado = ((i - 1) * Rnd + 1)
            
        MsgBox "O Numero Sorteado é: " + CStr(resultado), vbInformation, "Resultado"

End Sub

Sub Pagos()
    Dim iLin As String, lin As String, i As Integer, Ul As String
    Plan1.Range("E2:E" & Plan1.Cells(Rows.Count, "A").End(xlUp).Row) = ""
    iLin = Plan1.Cells(Rows.Count, "A").End(xlUp).Row
    lin = 2
    Ul = 2
    For i = 2 To iLin
        If Plan1.Cells(i, 3) = "PAGO" Then
            Plan1.Cells(Ul, 5) = Plan1.Cells(i, 1)
            lin = lin + 1
            Ul = Ul + 1
        End If
            Plan1.Select
    Next i
End Sub

O essencial faz a vida valer a pena!

 
Postado : 05/06/2021 11:35 am
(@andregomesmac)
Posts: 11
Active Member
Topic starter
 

@muca é quase uma solução, más precisa amadurecer! o ideal seria uma maneira de colocar uma condição antes do sorteio.

por exemplo, rnd "intervalo" contido em "matriz" se "pago".

algo parecido com isso, não sei se tem uma lógica capaz

tipo um rnd com if

 
Postado : 05/06/2021 9:09 pm
muca
 muca
(@muca)
Posts: 36
Eminent Member
 

Com InputBox, para escolher PAGO ou NÃO PAGO, e selecionando o número sorteado.

 

Sub sorteio()
Dim celula As String
Dim resultado As Integer
    Escolha
    LINHA = 1
    celula = "E" + CStr(LINHA)
    i = Plan1.Range(celula).Value
    
        While i <> ""
        LINHA = LINHA + 1
        celula = "E" + CStr(LINHA)
        i = Plan1.Range(celula).Value
        Wend
        
        LINHA = LINHA - 1
        celula = "E" + CStr(LINHA)
        i = Plan1.Range(celula).Value
       
            Randomize:
            resultado = ((i - 1) * Rnd + 1)
        
        Range("A" & CStr(resultado) + 1).Select
        MsgBox "O Numero Sorteado é: " + CStr(resultado), vbInformation, "Resultado"
End Sub

Sub Escolha()
Dim iLin As String, lin As String, i As Integer, Ul As String, varTexto As String
    
    Plan1.Range("E2:E" & Plan1.Cells(Rows.Count, "A").End(xlUp).Row) = ""
    iLin = Plan1.Cells(Rows.Count, "A").End(xlUp).Row
    varTexto = InputBox("Insira um texto", "Informe a Condição (PAGO ou NÃO PAGO")
    Plan1.Range("E1") = varTexto
    lin = 2
    Ul = 2
    
    For i = 2 To iLin
        If Plan1.Cells(i, 3) = varTexto Then
            Plan1.Cells(Ul, 5) = Plan1.Cells(i, 1)
            lin = lin + 1
            Ul = Ul + 1
        End If
            Plan1.Select
    Next i
End Sub

O essencial faz a vida valer a pena!

 
Postado : 06/06/2021 10:10 am
(@andregomesmac)
Posts: 11
Active Member
Topic starter
 

@muca não consegui colocar em pratica, teria como colocar na planilha e repostar?

 

 
Postado : 12/06/2021 4:43 pm
muca
 muca
(@muca)
Posts: 36
Eminent Member
 

@andregomesmac

 

O essencial faz a vida valer a pena!

 
Postado : 13/06/2021 9:48 am
(@andregomesmac)
Posts: 11
Active Member
Topic starter
 

@muca infelizmente não funcionou. na primeira tentativa  sorteou um não pago.

 
Postado : 23/06/2021 1:27 pm
JSCOPA10
(@jscopa10)
Posts: 344
Reputable Member
 

@andregomesmac, veja a gambiarra na Plan2 ... é só apertar DEL em qualquer célula vazia e o sorteio acontece!!!!!!!!!!!!!

PS: você pode combinar com o pessoal ... vou apertar DEL 10x quem aparecer em F2 é o sorteado!!!!!!!!!!!!!

 

 
Postado : 23/06/2021 2:17 pm
muca
 muca
(@muca)
Posts: 36
Eminent Member
 

@andregomesmac

Veja se o anexo resolve...

 

O essencial faz a vida valer a pena!

 
Postado : 25/06/2021 12:21 pm
(@andregomesmac)
Posts: 11
Active Member
Topic starter
 

@muca funcionou, obrigado.
tenho um outro arquivo com uma dificuldade bem parecida!

se puder me passa um endereço de email que te envio para ver se pode me ajudar!

 

 
Postado : 17/07/2021 3:28 pm