fermare un for



  • fermare un for
    di rocco (utente non iscritto) data: 02/06/2015 16:44:37

    salve a tutti

    faccio subito un esempio:

    for b = 1 to 100
    for a = 1 to 50
    if cells(a,b)= 9 then
    cells(a,b).interior.colorindex = 3
    end if
    next a
    next b

    nel caso in cui io trovassi il numero 9 alla cella (10,1) e non volessi continuare la ricerca sulla stessa colonna fino alla riga 50 (perchè è probabile che si stia un altro 9 e in quel caso non lo volessi colorare) come faccio a chiudere il "for a" e passare alla colonna successiva?

    grazie fin d'ora a chi mi potra aiutare



  • di Obelix (utente non iscritto) data: 02/06/2015 16:54:52

    Exit For dovrebbe risolvere.
     
    Option Explicit
    
    Sub Colora()
    Dim b As Byte, a As Byte
        For b = 1 To 100
            For a = 1 To 50
                If Cells(a, b) = 9 Then
                    Cells(a, b).Interior.ColorIndex = 3
                        Exit For
                End If
            Next a
        Next b
    End Sub
    


  • fermare un for
    di rocco (utente non iscritto) data: 02/06/2015 18:22:47

    e se io volessi uscire anche da l'altro for?
    dovrei scrivere due volte exit for?



  • di Obelix (utente non iscritto) data: 02/06/2015 19:10:21

    Si, ma dopo Next a



  • di Obelix (utente non iscritto) data: 02/06/2015 19:20:36

    Forse è meglio chiarire:
     
    Option Explicit
    
    Sub Colora()
    Dim b As Byte, a As Byte
        For b = 1 To 100
            For a = 1 To 50
                If Cells(a, b) = 9 Then
                    Cells(a, b).Interior.ColorIndex = 3
                        Exit For
                End If
            Next a
                If Cells(a, b) = 9 Then Exit For
        Next b
    End Sub


  • fermare un for
    di rocco (utente non iscritto) data: 02/06/2015 21:35:56

    GRASSIEEEEEEEEEEEEEE



  • di Obelix (utente non iscritto) data: 03/06/2015 07:07:10

    Solo per completezza, visto che vuoi terminare dopo il primo controllo positivo:
     
    Option Explicit
    
    Sub Colora()
    Dim b As Byte, a As Byte
        Cells.Select
        With Selection.Interior
            .Pattern = xlNone
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
            Range("A1").Select
        For b = 1 To 100
            For a = 1 To 50
                If Cells(a, b) = 9 Then
                    Cells(a, b).Interior.ColorIndex = 3
                        End
                End If
            Next a
        Next b
    End Sub