Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas Usando For e Next


ElvisNoleto

Pergunta

Boa tarde!

Pessoal desculpe se as minhas perguntas forem bobas. Vou tentar ser o mais claro possível.

seguinte...

Criei um código VBA no excel para comparar duas abas de uma planilha e copiar valores caso as minhas condições sejam verdadeiras, (vou dar exemplo)

eu consegui criar o código e ele funciona perfeitamente só que o problema é que se eu usar o código mais de 4 vezes o meu Pc entra em colapso (Intel Core i7 4ghz, 8gb de memória com placa de vídeo 2gb) se alguém souber alguma forma de otimizar o código para evitar travamento eu agradecerei infinitamente.

Ex Planilha:

Na planilha aba A temos na linha 1 o número 10 seguindo a linha temos uma série de dados como sala de aula e outros.

Na aba B temos nomes que quero atribuir as linhas da aba A. os nomes dos alunos são Numerados tendo lá alguns alunos com o número 1 o mesmo que tem

na aba A. Então a idéia da macro é atribuir automaticamente o nome do aluno á sala com número correpondente e caso tenha mais de um aluno com o mesmo número então serão divididos igualmente pelas salas. tá chega de baboseira vamos ao código.

Sub Copiar()

Sheets("Alunos").Select

Range("G2").Select

ActiveCell.FormulaR1C1 = "=COUNTA('Salas'!C2)" 'Conta os valores para o for não ser excessivamente grande

Calculate

a = Range("G2").Value

Contador = 2

For X = 1 To a

Sheets("Salas").Select

If Sheets("Salas").Cells(X, 9) = "1" Then

If Sheets("Salas").Cells(Contador, 1) = "" Then

Contador = 2

Else

Contador = Contador + 1 'FAZ UM LOOP CASO OS ALUNOS ACABEM

End If

If Sheets("Alunos").Cells(Contador, 3) = "1" Then

Sheets("Salas").Cells(X, 1) = Sheets("Alunos").Cells(Contador, 1)

Else

X = X - 1 'Evita que pule linhas

End If

End If

Next X ' Recomeça o valor do For

End Sub

Assim funciona só que se eu for usar mais critérios para separar pra mais salas tipo refazer para contar e separar também para o número "2".

O computador trava, eu sinceramente não sei se tem um bug na minha fórmula ou se tem outro jeito de usá-lo pra otimizar processamento.

Agradeço pela atenção.

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...