Sorteio por fórmula sem repetir nomes de outra coluna

Olá, pessoal!

Pretendo adaptar as fórmulas existentes numa coluna E para o sorteio de nomes,
desde que não repita nomes fixos em outra coluna G referente ao mesmo bairro.
conforme planilha anexa:

Sorteio com fórmulas (atualizada)

Grato pela atenção!

Orlando Souza

Ola @Orlando, não é uma solução bonita, mas resolve até uma solução melhor.

Na coluna K, coloquei um contador de diferentes, e na macro, acrescentei no final se o campo “Conferente” for diferente de 128, é acionada a macro novamente.

Arquivo do teste.

Arquivo do teste2

Arquivo do teste3

Arquivo editado, sem planilha extra.


ATENÇÂO:: Para dar mais detalhes a sua pergunta, use Descrição da imagem na pergunta ou Descrição da imagem abaixo. Grato.

Caso a resposta atendeu sua necessidade, por gentileza, click na bolinha Descrição da imagem a esquerda da resposta, para finalizar a pergunta.

Olá, @Gilberto Schiavinatto

A ideia é boa, mas a macro acrescentada está gerando um loop infinito com travamento na planilha.

abç.

Ok @Orlando, Tudo depende de sorte, os testes que fiz variou de 2min e 25 seg. a 5min e 40seg. rodei 6 vezes.

vlw a intenção, @Gilberto Schiavinatto! Mas é muito tempo para aguardar o sorteio.

Não seria mais rápido se conseguíssemos uma

fórmula nas linhas de coluna K com resultado “1”, quando

tivessem nomes iguais em mesmo bairro nas cols I e J; e

resultado “” (cél vazia), quando isso não acontecesse?

Incluindo uma macro enxuta para realizar um loop do sorteio

até que a soma nas linhas da col K ficassem “” (cél vazia).

@Orlando, Vide Arquivo teste2 na resposta acima a coluna M tem 1 para Bairro com duplicata.

No 2o. teste também o loop da macro é lento.

Acho que não é possível deixa-lo instantâneo como na combinação das teclas de atalho Ctrl+Shift+F9

Obrigado pela atenção, @Gilberto Schiavinatto

:slight_smile:

Ops… Só gerei o 1 na coluna M, não alterei a macro. Não tenho conhecimento suficiente para altera-la conforme mencionou acima…

Sorteio em +/- 5 segundos, tá bom, vide acima: Arquivo teste3

Criei uma planilha para sorteio, depois só linkei com a tabela.

E uma macro simples de recalculo.

dos três testes, o 2º foi o que mais se aproximou da minha pergunta. Precisando apenas o sorteio ficar instantâneo.

abçs.

@Orlando,

Não entendi, você testou o terceiro ?? Menos que 5 segundos ….

Oi!

testei, mas precisa acrescentar uma planilha, tirar as fórmulas na col E e causa um erro de execução na linha do comando: Call RecalF9

Ola @Orlando, entre em contato direto, veja aqui: https://wiki.documentfoundation.org/User:Schiavinatto

Indique na planilha o que quer alterar e envie direto para mim. Aguardo.

Sobre o comando Call RecalF9, é uma chamada de outra macro para executar.

Encontrei o código abaixo para o VBA Excel, que executa a tecla F9. Mas não encontrei ainda o que executa as teclas Ctrl+Shift+F9 no VB Calc

	Do
ActiveSheet.Calculate
Loop Until ActiveSheet.Range("K130").Value = 0

:frowning:

@Orlando, macro feita pelo gravador:

Sub CtrlShiftF9
'----------------------------------------------------------------------
dim document, dispatcher as object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:CalculateHard", "", 0, Array())
end Sub

.

Olá, @Gilberto Schiavinatto

Não consegui aplicar a ação das teclas Ctrl+Shift+F9 na execução do loop, até que “K2:K129” ou K130 seja igual a 0. Conforme instruções na imagem de link abaixo:

Loop pelo Basic Calc

Onde, K2:K129

=SE(É.NÃO.DISP(PROCV(I2;J:J;1;0));0;1)

.

@Orlando, na execução de F9 ou Ctrl+Shift+F9 não reparei diferença no resultado, todas as formulas são recalculadas, se faz um loop individual para cada célula, creio que não vai adiantar, pois todas as células serão recalculadas, até as já corretas. No terceiro arquivo da minha resposta eu uso um contador de diferentes (nomeado conferente) na célula K131, coluna oculta e espelhado na célula H131. A Macro só aciona o recalculo e confere se o valor do contador é 128, se SIM para, caso contrario é recalculado.

Isso mesmo! Pretendo encontrar um código enxuto que realize um loop de reativação das fórmulas na col E, até que a fórmula =SOMA(K2:K129) na célula K130 resulte em 0 (zero). Com fórmula =SE(É.NÃO.DISP(PROCV(I2;J:J;1;0));0;1) no intervalo K2:K129.

O “Arquivo do teste3” faz aquilo que comentei no dia ( Out 3 '19 ), além de alterar o funcionamento do botão na tabela do arquivo que anexei à essa minha pergunta.

Um abraço!

Sobre o botão, realmente alterei, pois estou utilizando a versão 6.3.x e esta com problemas com botões, alterei para figura geométrica.