Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
Netrox92

Excel vba (TESTA TODAS POSSIBILIDADES)

Recommended Posts

Ola,

Preciso novamente da ajuda de vocês!

Estou construindo uma planilha para me ajudar a montar minha Grade de Aula na Facul... porém nao faço ideia de qual cod usar.

É o seguinte: Eu posso montar minha grade de aulas podendo assistir cada matéria com alguma turma.

Ex:

Matematica I - Turma A

Sociologia - Turma B

Filosofia - Turma C

assim por diante.

porém quando estou montando minha grade, as vezes as materias entram em conflito, me obrigando a deixar de lado alguma(s) matéria(s).

Eu gostaria de saber algum cód que testa TODAS POSSIBILIDADES de grade, e gravando na "Plan2" somente aquelas grades, onde TODAS MATERIAS estejam presentes.

OBS: Se eu escolher fazer alguma matéria que tenha 2 aulas por semana, as 2 aulas devem ser assistidas na MESMA TURMA!

Ex:

Matemática I = TURMA B

Segunda-feira = 2ª aula- TURMA B

Quinta-Feira = 1ª aula - TURMA B

Minha ideia é o seguinte:

As grades de TODAS TURMAS estão preenchidas na parte de baixo da minha planilha, podendo ter até 20 turmas diferentes.

na parte superior da minha planilha estão escritas as matérias QUE EU PRECISO FAZER!

do lado direito das matérias que eu preciso fazer, tem uma grade de aula, onde será testado os horarios das matérias que eu tenho.

Caso todas matérias estejam presentes no horario feito, esse horario é copiado para "Plan2", e é testado um novo horario. Isso seria feito até todas possibilidades de Grade de Aula serem testadas.

Segue abaixo um exemplo da planilha:

http://www.4shared.com/file/5SA9lHi7/NOVA_GRADE.html?

http://www.sendspace.com/file/2fb0ta

Obrigado,

Abraços

Editado por Netrox92

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Não sei se fui bem claro, portanto estou complementando aqui.

    Conforme a planilha que coloquei a disposição:

    Seria mais ou menos assim a rotina:

    Ao escolher que a minha 1ª AULA na Segunda-feira é Microeconomia-TURMA B

    OBRIGATORIAMENTE ( por se tratar de uma materia que tenho 2 aulas por semana)

    A minha segunda aula de Microeconomia vai ser na TURMA B. Sendo essa na 2ª AULA na Terça-feira

    Sendo assim, NÃO POSSO mais escolher nenhuma materia que as aulas sejam na Segunda-feira (1ª aula)

    nem na Terça-feira (2ª aula)

    Conforme vai fazendo isso, chega uma hora, que a minha grade está quase lotada, faltando apenas algumas matérias.

    porém os horarios dessas matérias que faltam ser incluidas acabam entrando em conflito com as que já estão inclusas.(me obrigando a não faze-la nesse semestre)

    Minha intenção é eu visualizar TODAS GRADES onde TODAS MATÉRIAS estejam inclusas. (para que eu não precise deixar nenhuma matéria para ser feita depois, podendo escolher aquela que seja melhor para mim)

    E aquelas grades onde os horarios entram em conflito NÃO PRECISAM ser visualizadas.

    Espero ter sido mais claro.

    Caso tenha ficado alguma duvida, por favor me avise!

    Obrigado mais uma vez!

    Abraços

    Editado por Netrox92

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Bom dia,

    Ninguem sabe como faz isso?

    Não precisa montar a planilha, só me passa algum loop ou alguma coisa que faça isso que eu monto a planilha

    Por favor, se alguem souber e possa me ajudar, ficarei grato.

    Obrigado

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Olá Netrox.

    Podemos sim te ajudar, pois seu problema é simples porém a solução se torna longa.

    Você já programa em VBA?

    Vamos começar do início? Faça perguntas mais objetivas! Tente desenvolver o código e postar seus erros e acertos, assim você aprende e nos ajuda a te ajudar.

    Acho que voce precisa primeiramente declarar constantes para carregar o total de aulas que você precisa.

    Ex:


    Option Explicit

    Const SociologiaGeral = 3
    [Etc...]

    Depois da uma olhada aqui mesmo nos outros tópicos, alguns exemplo de loop.

    Veja isso:

    http://www.juliobattisti.com.br/artigos/office/vba_access_p9.asp

    Ficando no aguardo dos exemplos dos seus erros e/ou acertos,

    Leno Mota.

    Editado por leno mota
    Tag!

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Ola leno mota,

    Muito obrigado pela resposta!

    Eu sei programar em VBA, porém sei muito pouco, pois aprendi sozinho com o auxilio de vocês aqui do forum. porém quando se trata de loop eu nao sei praticamente nada.

    porém estou lendo o link que voce me passou.

    Eu fiz algumas alterações na planilha pra ver se melhora na construção do cod.

    Os horarios que a facul disponibiliza, está organizado por matéria.

    Nas colunas dos dias da semana os horarios estão organizados por 3 números (n° 1, n°2 e n°3)

    n°1 equivale a 1ª aula referente aquele dia da semana

    n°2 equivale a 2ª aula

    n°3 equivale a 3ª aula

    Eu tenho apenas 3 aulas por dia.

    Adicionei tambem uma coluna onde fala a quantidade de vezes por semana que eu tenho em cada materia. (acredito que era isso que voce quis dizer com declarar constantes para carregar o total de aulas)

    Bom, é o seguinte, sinceramente eu nao faço ideia de qual cod começar usando, porém eu sei mais ou menos como vai ter que funcionar.

    Como eu vou ter que testar todas as possibilidades, acredito que o primeiro teste começe com todas as matérias da TURMA A

    Sociologia Geral -------------------- TURMA A

    Comunicação e Expressão --------- TURMA A

    Filosofia ----------------------------- TURMA A

    Matemática I ------------------------ TURMA A

    Teoria Básica da Administração----- TURMA A

    Microeconomia ---------------------- TURMA A

    NESSE CASO, nenhuma matéria entra em conflito, pois está todas na TURMA A

    Depois o segundo teste seria:

    Sociologia Geral -------------------- TURMA B

    Comunicação e Expressão --------- TURMA A

    Filosofia ----------------------------- TURMA A

    Matemática I ------------------------ TURMA A

    Teoria Básica da Administração----- TURMA A

    Microeconomia ---------------------- TURMA A

    O terceiro seria:

    Sociologia Geral -------------------- TURMA A

    Comunicação e Expressão --------- TURMA B

    Filosofia ----------------------------- TURMA A

    Matemática I ------------------------ TURMA A

    Teoria Básica da Administração----- TURMA A

    Microeconomia ---------------------- TURMA A

    O quarto teste seria:

    Sociologia Geral -------------------- TURMA A

    Comunicação e Expressão --------- TURMA A

    Filosofia ----------------------------- TURMA B

    Matemática I ------------------------ TURMA A

    Teoria Básica da Administração----- TURMA A

    Microeconomia ---------------------- TURMA A

    E assim por diante, até efetuar todos os testes possiveis.

    Não sei se isso ajudou muito, mas se ja der para descobrir qual cod. começar usando ja ajuda.

    Eu adicionei um outro botão la na planilha, com outro exemplo. (o cód está só exemplificando, pois nao sei como começar mesmo.) :wacko:

    Segue abaixo planilha nova:

    http://www.4shared.com/file/wS2kE-3p/NOVA_GRADE_2.html?

    http://www.sendspace.com/file/rbos2i

    OBS: No exemplo que está na planilha, parei no teste 2 porque to no trabalho e tenho que ir para a casa. Caso ache necessário eu coloco mais testes.

    Obrigado mais uma vez

    Abraços

    Editado por Netrox92

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Somente mais uma pergunta. Quantas vezes voce vai precisar usar esse código?

    Vamos fazer uma análise lógica.

    O loop é uma repetição que acontece "n" vezes.

    Quantas vezes voce quer que o código seja repetido?

    Até que alguma carga horária seja atingida? Que as alguma célula seja "atingida"?

    No aguardo,

    Leno Mota

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Ola,

    então, eu deixei espaço para 10 grades de horarios que a facul disponibiliza.

    No caso desse exemplo, eu só preenchi 3 das 10 grades. (pois esse semestre só disponibilizaram 3) mas no proximo o número vai no minimo dobrar.

    o Loop aconteceria até testar todas as possibilidades. No caso do meu exemplo, ele aconteceria até testar todas possibilidades de grade misturando os horarios da TURMA A, TURMA B e TURMA C.

    podendo ficar até assim:

    Sociologia Geral -------------------- TURMA B

    Comunicação e Expressão --------- TURMA A

    Filosofia ----------------------------- TURMA C

    Matemática I ------------------------ TURMA A

    Teoria Básica da Administração----- TURMA C

    Microeconomia ---------------------- TURMA B

    Como tem espaço para 10 grades, cada grade que a facul disponibiliza PODE TER até 11 matérias. São 111 matérias (porém as matérias podem ou não se repitir)

    no caso do exemplo que coloquei, nas 3 grades, as matérias se repetem.

    porém o número total de testes que deve ser feito eu nao sei, tentei fazer uma conta aqui mas acho que fiz a conta errada pois deu um número absurdo.

    Vou até colocar aqui, mas nao precisa nem considerar. (3.943.664.897.925.675,52)

    Estou tentando descobrir que conta faz para obter esse número.

    a conta acima eu fiz utilizando formula de combinação simples

    não sei se era essa informação que voce queria.

    Obrigado mais uma vez, e desculpe caso eu não esteja conseguindo entender.

    Abraços

    Editado por Netrox92

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário

    Entre para seguir isso  





    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×