Sottrarre un determinato valore sino al raggiungimento delle condizioni desiderate:è possibile farlo?____

Anonimo
2010-09-24T23:15:48+00:00

Ciao a tutti!

Ho un problema con excel...

voglio che mi sottragga sempre lo stesso valore fino al raggiungimento dell range minimo impostato <250 .

Esempio:

il valore della cella A1 è 300, excel deve sottrarre sempre di 30 la cella A1 fino a raggiungere un numero minore di 250.

Nel primo caso -30 è 270, quindi deve risottrarre 30 = 240 / ok può mostrare il valore!

E' possibile farlo?Come?

Attendo risposta!Grazie 1000

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2010-09-26T00:17:45+00:00

Ciao kokklos.

Eventualmente puoi usare una formula direttamente sul foglio, tipo:

in A1   =  300

in A2   =  250

in A3   =   30

in A4   =   =SE(A1<=A2-1;"Fuori range";A1-((INT((A1-A2)/A3)+1)*A3))

Saluti

Eliano

La risposta è stata utile?

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2010-09-25T07:53:41+00:00

Ciao a tutti!

Ho un problema con excel...

voglio che mi sottragga sempre lo stesso valore fino al raggiungimento dell range minimo impostato <250 .

Esempio:

il valore della cella A1 è 300, excel deve sottrarre sempre di 30 la cella A1 fino a raggiungere un numero minore di 250.

Nel primo caso -30 è 270, quindi deve risottrarre 30 = 240 / ok può mostrare il valore!

E' possibile farlo?Come?

Attendo risposta!Grazie 1000

Questa funzione:

Public Function f(ByVal v1 As Variant, _

    ByVal v2 As Variant, _

    ByVal v3 As Variant) As Variant

    Dim v As Variant

    v = v1

    Do While v > v2

        v = v - v3

    Loop

    f = v

End Function

da copia/incollare in un modulo standard(ALT+F11-->Inserisci-->Modulo) fa quello che chiedi. Si aspetta tre parametri:

  • v1: il numero da cui partire(il tuo 300)
  • v2: il numero limite(il tuo 250)
  • v3: il numero da sottrarre via via

Come utilizzarla da una cella: =f(300;250;30) oppure =f(G1;G2;G3), oppure =f(G1;250;30)  dove, ad esempio, i tre valori inseriti direttamente come parametri, oppure sono nelle celle G1/G2/G3 nel secondo caso o solo in G1 nel terzo caso.

Come utilizzarla da una Sub vb:

Public Sub m()

    MsgBox f(300, 250, 30)

End Sub

Fai gentilmente sapere se hai risolto. Grazie per l'attenzione.


--

La soluzione, il codice ed i files sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dalla soluzione proposta se usata impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare la soluzione in files importanti.

--

Mauro Gamberini - Microsoft© MVP(Excel)

http://www.maurogsc.eu/

La risposta è stata utile?

0 commenti Nessun commento

22 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2010-09-25T06:30:33+00:00

    X rappresenta il valore che Excel legge nella cella A1 cioè la cella (1,1) nel tuo esempio il valore sarà X=300.  X è una variabile che devi lasciare come tale... Se preferisci aggiungi due righe nella pagina (le devi mettere però all'inizio):

    Option Explicit

    Dim X as Double

    che indicano ad Excel che X è una variabile numerica di tipo doppia precisione.

    Infine puoi scrivere al posto di Cells(1,1) : Range("A1") ma io preferisco usare quasi sempre il metodo Cells che è più "cartesiano":

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2010-09-25T06:21:44+00:00

    Puoi fare una piccola macro:

    Sub Macro()

    X=cells(1,1).value

    do while X>=250

    X=X-30

    Loop

    cells(1,1).Value=X

    End sub

    La puoi attivare con un pulsante se preferisci oppure la lanci dal menu Macro, o ancora semplicemente premendo ALT+F8 e quindi esegui ...

    Grazie 1000 per la risposta...allora al posto di x cosa devo mettere? Nelle parentesi il valore (1,1) cosa intende?

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2010-09-25T06:09:07+00:00

    Puoi fare una piccola macro:

    Sub Macro()

    X=cells(1,1).value

    do while X>=250

    X=X-30

    Loop

    cells(1,1).Value=X

    End sub

    La puoi attivare con un pulsante se preferisci oppure la lanci dal menu Macro, o ancora semplicemente premendo ALT+F8 e quindi esegui ...

    La risposta è stata utile?

    0 commenti Nessun commento