Página 1 de 1

For simplificado

Enviado: 25 Nov 2021 às 15:33
por Diego100ges
Prezados, boa tarde. estou tentando simplificar um for porem nao estou conseguindo, estou precisando repetir o for por 14x, seria melhor se desse para fazer um unico for, se aguem conseguir ajudar.

Quando eu tento colocar em 1 único for, os resultados não batem,
Código: Selecionar todos
'FAZ A PREVISAO

        For i = 1 To list_previsao.ListItems.Count
            previsao = previsao + list_previsao.ListItems(i).SubItems(2)
        Next i
        
        list_previsao.ListItems.Item(1).SubItems(4) = previsao
        previsao = 0
        
        For i = 2 To list_previsao.ListItems.Count
            previsao = previsao + list_previsao.ListItems(i).SubItems(2)
        Next i
        
        list_previsao.ListItems.Item(2).SubItems(4) = previsao
        previsao = 0

        For i = 3 To list_previsao.ListItems.Count
            previsao = previsao + list_previsao.ListItems(i).SubItems(2)
        Next i

        list_previsao.ListItems.Item(3).SubItems(4) = previsao
        previsao = 0

        For i = 4 To list_previsao.ListItems.Count
            previsao = previsao + list_previsao.ListItems(i).SubItems(2)
        Next i

        list_previsao.ListItems.Item(4).SubItems(4) = previsao
        previsao = 0

        For i = 5 To list_previsao.ListItems.Count
            previsao = previsao + list_previsao.ListItems(i).SubItems(2)
        Next i

        list_previsao.ListItems.Item(5).SubItems(4) = previsao
        previsao = 0

        For i = 6 To list_previsao.ListItems.Count
            previsao = previsao + list_previsao.ListItems(i).SubItems(2)
        Next i

        list_previsao.ListItems.Item(6).SubItems(4) = previsao
        previsao = 0

        For i = 7 To list_previsao.ListItems.Count
            previsao = previsao + list_previsao.ListItems(i).SubItems(2)
        Next i

        list_previsao.ListItems.Item(7).SubItems(4) = previsao
        previsao = 0

        For i = 8 To list_previsao.ListItems.Count
            previsao = previsao + list_previsao.ListItems(i).SubItems(2)
        Next i

        list_previsao.ListItems.Item(8).SubItems(4) = previsao
        previsao = 0

        For i = 9 To list_previsao.ListItems.Count
            previsao = previsao + list_previsao.ListItems(i).SubItems(2)
        Next i

        list_previsao.ListItems.Item(9).SubItems(4) = previsao
        previsao = 0

        For i = 10 To list_previsao.ListItems.Count
            previsao = previsao + list_previsao.ListItems(i).SubItems(2)
        Next i

        list_previsao.ListItems.Item(10).SubItems(4) = previsao
        previsao = 0

        For i = 11 To list_previsao.ListItems.Count
            previsao = previsao + list_previsao.ListItems(i).SubItems(2)
        Next i

        list_previsao.ListItems.Item(11).SubItems(4) = previsao
        previsao = 0

        For i = 12 To list_previsao.ListItems.Count
            previsao = previsao + list_previsao.ListItems(i).SubItems(2)
        Next i

        list_previsao.ListItems.Item(12).SubItems(4) = previsao
        previsao = 0

        For i = 13 To list_previsao.ListItems.Count
            previsao = previsao + list_previsao.ListItems(i).SubItems(2)
        Next i

Re: For simplificado

Enviado: 30 Nov 2021 às 13:45
por demabiath
ListItens.Count retorna um valor integer você pode substituir o For por Do While (Fazer enquanto), adicionando uma uma soma a cada execução. Obs:( Não sei qual o contexto do seu código, então estou me baseando sobre as informações que você colocou )
---------------------------------------------------------------------------------------------------
i = 1

Do While i < list_previsao.ListItems.Count

previsao = previsao + list_previsao.ListItems(i).SubItems(2)
Next i

list_previsao.ListItems.Item(1).SubItems(4) = previsao
previsao = 0
i + 1
Loop

Re: For simplificado

Enviado: 30 Nov 2021 às 15:39
por DJunqueira
'For' q só executa uma vez não é 'For' :D

Re: For simplificado

Enviado: 05 Dez 2021 às 18:52
por Raygsson
Código: Selecionar todos

For i = 1 To 14        
            previsao = 0            

            For ii = i To list_previsao.ListItems.Count
                previsao = previsao + list_previsao.ListItems(ii).SubItems(2)
            Next
            
            list_previsao.ListItems.Item(i).SubItems(4) = previsao    
Next