none
Percorrer intervalo de celulas com calculo até atender condição. RRS feed

  • Pergunta

  • Bom dia

    Gostaria de saber se é possível criar algum código VBA que seria ativado com um botão e percorresse um intervalo de células realizando cálculos em cada passagem até atingir uma condição.

    Explico, por exemplo, no intervalo A1 até A10, eu teria uma soma que o total é igual a 100, e o correto deveria ser 70, então quando eu clicar neste botão ele iria percorrer o intervalo e subtrair 1 da célula com o maior valor e faria isso suscessivamente até atingir a condição que é ser igual a 70.

     

    Não entendo muito de VBA e não sei se é possível fazer isso. Alguém tem alguma idéia ?

     

    Grato.

     


    • Editado Glauber_Silva sexta-feira, 16 de setembro de 2011 15:47
    sexta-feira, 16 de setembro de 2011 15:46

Respostas

  • Fiz esse código de acordo com os dados passados na imagem

    testa que as vezes pode ajudar vc a fazer o que realmente vc

    está precisando...

     

    qlqr duvida estou a disposição

     

    abrç

     

    Sub comparaValor()

    For i = 1 To 5
    maior = 0
    total = Cells(7, i).Value
    ref = Cells(9, i).Value
    j = 1
        Do While total <> ref
            Do While Cells(j, i).Value <> ""
            If Cells(j, i).Value > maior Then
                maior = Cells(j, i).Value
                linha = j
            End If
            j = j + 1
            Loop
           
            If total > ref Then
                Cells(linha, i).Value = Cells(linha, i).Value - 1
            ElseIf total < ref Then
                Cells(linha, i).Value = Cells(linha, i).Value + 1
            End If
          
            total = Cells(7, i).Value
            ref = Cells(9, i).Value
            j = 1
            maior = 0
        Loop
    Next i
    End Sub

    • Editado Jhonatan Franklin segunda-feira, 19 de setembro de 2011 22:44 Modificação no Código
    • Marcado como Resposta Glauber_Silva terça-feira, 20 de setembro de 2011 13:28
    segunda-feira, 19 de setembro de 2011 22:20

Todas as Respostas

  • Fala, Glauber!!! Bem vindo de volta...

    É perfeitamente possível, sim! Há laços no VBA q fazem isso pra gente.

    Post um arquivo para que possamos ter um exemplo do q, exatamente, vc quer fazer.

    Abs!!!


    Obrigado, Everton
    • Editado almeida.eas sexta-feira, 16 de setembro de 2011 19:29
    sexta-feira, 16 de setembro de 2011 19:29
  • Então,
    Digamos que eu tenha a seguinte tabela
                   
    Eu quero criar uma função ou algo do gênero que ao acionada irá comparar o Total de cada coluna  com o Total Ref. e se não estiverem iguais ela irá verificar qual o maior número da coluna e subtrair ou somar 1 até que Total esteja igual ao Total Ref. 
    Bom, é isso  que estou precisando fazer por hora, na verdade o que eu preciso é mais complicado que isso , mas as demais coisas eu consigo fazer se souber como fazer esse..
    abs


    • Editado Glauber_Silva segunda-feira, 19 de setembro de 2011 14:03
    segunda-feira, 19 de setembro de 2011 13:57
  • Fiz esse código de acordo com os dados passados na imagem

    testa que as vezes pode ajudar vc a fazer o que realmente vc

    está precisando...

     

    qlqr duvida estou a disposição

     

    abrç

     

    Sub comparaValor()

    For i = 1 To 5
    maior = 0
    total = Cells(7, i).Value
    ref = Cells(9, i).Value
    j = 1
        Do While total <> ref
            Do While Cells(j, i).Value <> ""
            If Cells(j, i).Value > maior Then
                maior = Cells(j, i).Value
                linha = j
            End If
            j = j + 1
            Loop
           
            If total > ref Then
                Cells(linha, i).Value = Cells(linha, i).Value - 1
            ElseIf total < ref Then
                Cells(linha, i).Value = Cells(linha, i).Value + 1
            End If
          
            total = Cells(7, i).Value
            ref = Cells(9, i).Value
            j = 1
            maior = 0
        Loop
    Next i
    End Sub

    • Editado Jhonatan Franklin segunda-feira, 19 de setembro de 2011 22:44 Modificação no Código
    • Marcado como Resposta Glauber_Silva terça-feira, 20 de setembro de 2011 13:28
    segunda-feira, 19 de setembro de 2011 22:20
  • Olá Jhonatan

     

    Ajudou bastante, eu estava fazendo algo parecido, mas estava ficando bem extenso, do jeito que vc fez, me deu idéias pra encurtar o código, pois além do Total e do Ref que tenho para coluna, também existe para linhas, mas agora eu já sei como irei fazer com as linhas 

     

    Obrigado!

     

    abç

    terça-feira, 20 de setembro de 2011 13:28