Funzione



  • Funzione
    di Enzodb data: 19/07/2010

    Salve gente sono nuovo di questo forum, ho bisogno di un aiuto per una funzione che non riesco a completare..... mi spiego meglio ho 3 celle a1 a2 a3 all'interno vengono inseriti dei valori che andranno divisi, moltiplicati, sottratti o addizionati tra loro, la funzione che devo inserire in una 4 cella a4, ad sempio a1=8 a2=6 a3=60 (8x6x60 = 90). ho provato con la funzione " =se " ma mi sottrae una volta soltanto il 90. come posso avere la sottrazione del 90 sino a che non raggiunga un numero compreso tra 1 e 90?



  • di Enzo (utente non iscritto) data: 19/07/2010

    Prendi spunto da questa istruzione
    in e1 c'e' un valore
    viene tolto 90 fino a quando il valore e' =< di 90
    viene restituito alla cella il nuovo valore
    adattala come vuoi

     
    VALORE = Range("E1").Value
    Do
    VALORE = VALORE - 90
    Loop Until VALORE <= 90
    Range("E1").Value = VALORE



  • di Enzodb data: 19/07/2010

    Grazie tantissimo per la tua disponibilita e diciamo che non me la cavo con il codice vba....questa funzione dove devo scriverla? nella cella a4? potresti darmi una spiegazione?



  • di Locate (utente non iscritto) data: 19/07/2010

    Ciao
    stavo guardando il tuo post ma non ho capito cosa intendi fare col 4*8*60=90 e sottrarre 90 fino al raggiungimento di un numere pari da 1 a 90 comunque stiamo al tuo esempio se ho capito se la moltiplicazione o somma o divisione ecc. da un numero maggiore di 90 tu sottrai 90 fino al raggiungimento del valore compreso tra 1-90
    la funzione da come ho capito e' questa
    -------------
    =se(a1*a2*a3>90;int(a1*a2*a3/90);a1*a2*a3)
    -----------
    ciao da locate



  • di Enzodb data: 19/07/2010

    La moltiplicazione 6x8x60 mi da una risultato di 2880 io da questo numero devo sottrarre 90 sino a che non rientri nel range da 1 a 90. sottraendo sempre 90 dal numero 2880 il risultato utile e 90.



  • di Enzodb data: 19/07/2010

    La moltiplicazione 6x8x60 mi da una risultato di 2880 io da questo numero devo sottrarre 90 sino a che non rientri nel range da 1 a 90. sottraendo sempre 90 dal numero 2880 il risultato utile e 90.



  • di Locate (utente non iscritto) data: 19/07/2010

    Ciao enzodb
    intanto saluto enzo
    quindi da come ai esposto il tuo problema devi proprio seguire il consiglio di enzo perche per fare questi calcoli bisogna per forza usare una macro. in questo caso ti ho adattato la macro di enzo ai tuoi dati come tu dici a1*a2*a3 risultato in a4 , questa va inserita in progetto vba in foglio1 e attivata quando ti serve. se conosci il vb si puo' anche adattarla per far si che in un deteminato momento si esequa in automatico,?? conoscendo la struttura del tuo file
    ciao da locate
     
    Sub calcola()
    valore = Range("A1") * Range("A2") * Range("A3").Value
    If valore > 90 Then
    Do
    valore = valore - 90
    Loop Until valore <= 90
    End If
    Range("A4").Value = valore
    End Sub
    



  • di Locate (utente non iscritto) data: 19/07/2010

    Ciao
    visto che non ai ancora risposto per la macro perche' ho pensato che tu di vb non ai esperienza in merito ti ho elaborato una funzione da mettere in a4 che fa il lavoro della macro vedi se ti e' utile
    -----------------------------
    =se(a1*a2*a3>90;se((a1*a2*a3)-(90*int((a1*a2*a3)/90))=0;90;(a1*a2*a3)-(90*int((a1*a2*a3)/90)));a1*a2*a3)
    -------------------------------
    ciao da locate
     
    funzione in A4
    =SE(A1*A2*A3>90;SE((A1*A2*A3)-(90*INT((A1*A2*A3)/90))=0;90;(A1*A2*A3)-(90*INT((A1*A2*A3)/90)));A1*A2*A3)
    



  • di Enzo (utente non iscritto) data: 20/07/2010

    Un saluto a locate
    ......funzione ....non mi ero accorto che si parlasse di funzione
    locate ha risolto brillantemente
    ciao a tutti