Originariamente inviato da neho34
Salve a tutti. ho un foglio excell che gestisco con delle form. In una di queste immetto i dati nell'altra attraverso dei checkbox li filtro. Il problema sta nel fatto che se checko uomini o donne li conta, mentre se seleziono gli altri check la cosa non viene fatta. Il codice è tutto nel pulsante e sono una serie di funzioni richiamate da un select case
codice:
Private Sub btn_mostra_Click()
situazione = True
Select Case situazione
    Case Is = chc_uomini.Value = True
        contaUomini (True)
    Case Is = chc_donne.Value = True
        contaDonne (True)
    Case Is = chc_gravi.Value = True
        contaGravi (True)
    Case Is = chc_fisico.Value = True
        contaFisica (True)
    Case Is = chc_motoria.Value = True
        contaMotoria (True)
    Case Is = (chc_fisico.Value = True), (chc_uomini.Value = True)
        'contaUominiFisico(True,True)
End Select
mentre le funzioni sono così:
codice:
Function contaGravi(grave As Boolean)
If grave = True Then
    For i = 1 To 10000
    If Range("J" & i) = 3 Then
        conta = conta + 1
    End If
    Next
    lbl_filtro = conta
End If
End Function
Io chiedo se c'è un modo per creare una sola funzione che possa comprenderle tutte io ho provato ma il mio pc si è molto risentito. altra cosa perchè i primi due case vengono eseguiti mentre gli altri non danno alcun messaggio (neanche d'errore)
Grazie per la vostra pazienza
C'e' un errore nel tuo codice, dovuto all'uso "strambo" del Select Case !

codice:
situazione = True
Select Case situazione
VVoVe:

...le parti di codice contenute nei "rami" Case sono mutualmente esclusivi, ossia ne viene eseguito UNO SOLO !

Quindi, visto che ALMENO UNO tra chc_uomini.Value e chc_donne.Value varra' sempre True (presumo), l'elaborazione non ha speranze di esplorare i successivi rami Case !