Costrutto select case



  • Costrutto select case
    di Nic82 data: 27/04/2010

    Ciao a tutti, mi date un mano per favore???

    ho una function come esempio pepr il costrutto select case, solo che non ci capisco molto, perchè il libro da cui l'ho presa non mi illustra una sub di esempio con cui io possa testare questa function per vedere come opera.

    me la sapreste indicare una voi? quello che capisco è che la function legge i primi tra caratteri della string giornosett ed in base a quelli assegna un valore ad "indennità"...ma quel'è l'utilizzo pratico?
    mi fate un esempio di come questa function si può inserire in una sub?

    grazie a tutti...
     
    Function Indennità(GiornoSett As String)
    Select Case UCase(Left(GiornoSett, 3))
    Case "LUN" To "MER"
    Indennità = 500
    Case "GIO", "VEN"
    Indennità = 700
    Case "SAB"
    Indennità = 750
    Case "DOM"
    Indennità = 900
    Case Else
    Indennità = 0
    End Select
    
    End Function
    



  • di Locate (utente non iscritto) data: 27/04/2010

    Ciao
    function no ne nientemeno come una funzione di excel, questa va messa in un modulo e per farla funzionare devi scrivere in una cella il nome della funzione
    ess. in a1 metti lun a2mar a3mer a4gio a5ven a6sab a7dom
    in b1 metti =indennità(a1) e trascini fino a b7
    vedi esempio sotto perche qui non tiene conto delle maiuscole
    come avrai notato con case puoi inserire molte variabili e le puoi controllare a tuo piacimento sempre nel limite
     
    LUN	500
    MAR	500
    MER	500
    GIO	700
    VEN	700
    SAB	750
    DOM	900
    ------------
    LUN	=Indennità(A1)
    MAR	=Indennità(A2)
    MER	=Indennità(A3)
    GIO	=Indennità(A4)
    VEN	=Indennità(A5)
    SAB	=Indennità(A6)
    DOM	=Indennità(A7)
    



  • di Nic82 data: 28/04/2010

    Ciao, grazie per la risposta!

    alla fine ho provato una sub che me la fa andare:

    nel range indicato devo andare a scrivere le varie indennità, mentre nella colonna a fianco (range b4:b17) ho i vari gg della settimana scritti per esteso, in questo modo me li riconosce e mi scrive l'indennità corretta.
     
    Sub ProvaIndennità()
    Range("C4:C17").Select
    For Each C In Selection
    C.Value = Indennità(C.Offset(0, -1).Value)
    'in questo modo passo dinamicamente il valore _ corretto alla funzione indennità
    Next
    End Sub