Ir ao conteúdo
  • Cadastre-se

VBA ou outro meio de combinar valores (complexo).


Posts recomendados

Boa Tarde Pessoal.

 

Estou com uma dificuldade e não estou conseguindo avançar sendo assim gostaria de contar com a ajuda de vocês se possível.

 

A questão é a seguinte, tenho uma lista de nomes que devo formar pares com esses nomes sem repetir (ou repetir o mínimo possível). Até aí devem tá achando fácil.

 

Mas ai que tá. Esses pares devem seguir uma lógica, um tanto quanto complexa.

 

Vou tentar explicar:

 

A lista tem por objetivo, formar pares para um trabalho onde se exige mesclar pessoas experientes com pessoas inexperientes nesse trabalho para três dias pré definidos (sexta, sábado e domingo) e ainda por cima, não se pode misturar homens com mulheres, a dupla tem que ter dois homens ou duas mulheres. Já tenho definido quem são os inexperientes e quem sãos os experientes. Agora necessito que as duplas se formem seguindo essa lógica, sendo duas duplas por dia (manhã e tarde).

 

Exemplo, tenho a lista abaixo:

 

João             Experiente           Homem           Sexta            Tarde

Maria            Inexperiente        Mulher             Sábado         Manhã

Carlos           Inexperiente        Homem           Domingo        Manhã

Clara            Experiente           Mulher             Domingo       Manhã

...... (e assim por diante)

 

Com essa lista (a lista original tem por volta de 25 nomes), tenho que criar as duas duplas por dia sem repetir (ou repetir o minimo possível) seguindo as diretrizes que citei acima.

 

Lembrando que também já está definido qual dia e horário cada um poderá trabalhar, conforme modelo de lista acima.

 

Pode ser por qualquer meio (VBA, Formulas ...) desde que atinja o objetivo que é não ter que programar isso um a um.

 

Agradeço desde já.

Link para o comentário
Compartilhar em outros sites

Olá, Jonatan.

Veja se esta solução que utiliza macro te ajuda.

O código abaixo forma as duplas e a partir daí você monta a sua escala de trabalho.

 

Coloque as listas de nomes compatíveis para formar as duplas, conforme os seus critérios, nas colunas 'A' e 'B' de uma planilha vazia, a partir da primeira linha e sem deixar células vazias. Em seguida rode o código. O código irá colocar as duplas formadas a partir da célula 'D1'.

 

 

Instale o código abaixo em um módulo comum, assim:
1. copie o código daqui
2. a partir da planilha em que estão os dados tecle 'Alt+F11' para acessar o editor de VBA
3. no menu do editor >> Inserir >> Módulo
4. cole o código na janela em branco que vai se abrir
5. feito! 'Alt+Q' para retornar para a planilha e testar

para rodar o código:
6. tecle 'Alt+F8' >> selecione a macro correspondente >> Executar, ou insira um botão na planilha e vincule-o à macro ou vincule-a a um atalho de teclado (Alt+F8 > Opções).

Sub FormaDuplas() Dim k As Long, m As Long, x As Long, y As Long, LC As Long  LC = Cells(1, Columns.Count).End(xlToLeft).Column   If LC > 3 Then Range(Columns(4), Columns(LC)) = ""  x = 1: y = 4  For k = 1 To Application.CountA([A:A])   For m = 1 To Application.CountA([B:B])    Cells(x, y) = Cells(k, 1) & " - " & Cells(m, 2)    x = x + 1   Next m   x = 1: y = y + 1  Next kEnd Sub

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...