Colonna con valore finale in 90

di il
18 risposte

Colonna con valore finale in 90

Buongiorno a tutti,

Avrei un quesito che non so se possa essere risolto, ma vale la pena provare...

io ho un file excel con una colonna importi che vengono calcolati in base ad vari dati provenienti da altre tabelle, io vorrei avere una nuova colonna in cui il risultato finale nonostante quello del primo sia sempre con fine 90

Per esempio
Colonna importi: € 10.570
Colonna valore finale: € 10.590

Colonna importi: € 10.591
Colonna valore finale: € 10.690


è fattibile fare una cosa del genere

Grazie

18 Risposte

  • Re: Colonna con valore finale in 90

    Ma... Hai riletto il tuo messaggio prima di inviarlo?
    Non si capisce niente...
  • Re: Colonna con valore finale in 90

    In effetti non si capisce...

    Vuoi aggiungere un altro importo (arrotondamento) o modificare gli altri importi? Nel secondo caso con quale criterio? Mi sembra abbastanza assurdo...
  • Re: Colonna con valore finale in 90

    Chiedo scusa se non sono stato molto chiaro, cerco di esprimere meglio il problema

    avrei bisogno di creare una cella che mi dia come risultato sempre l'arrotondamento con finale il numero 90 (190, 1190, 2590, ecc..) questo in base al dato presente in un'altra cella (che viene calcolato in precedenza)

    quindi:

    Cella A1: € 1.175
    Cella A2(quella dove dovrei inserire l'espressione) dovrebbe darmi € 1.190

    Se invece

    Cella A1: € 1.191, allora Cella A2 deve essere € 1.290

    Spero di essere stato più chiaro

    Grazie ancora
  • Re: Colonna con valore finale in 90

    Ciao
    se ho capito bene la domanda, prova con questa macro che ipotizza i dati disposti in modo differente da come indichi tu.
    Per esempio, i dati da arrotondare sono TUTTI (e senza celle vuote) nella colonna A mentre i risultati saranno in colonna B
    
    Option Explicit
    Sub arrotonda()
    Dim ur As Long, i As Long
    Dim a, b
    ur = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
    For i = 1 To ur
        a = Cells(i, 1).Value
        If Val(Right(a, 2)) <= 90 Then
            b = Left(a, Len(a) - 2) & "90"
        ElseIf Val(Right(a, 2)) > 90 Then
            b = Val(Left(a, Len(a) - 2)) + 1 & "90"
        End If
        Cells(i, 2) = b
    Next i
    End Sub
    
    Fai sapere. Ciao,
    Mario
  • Re: Colonna con valore finale in 90

    Scusa ma dove devo inserire il testo della macro, l'unica cosa che trovo è registra macro ma non mi permette di inserire stringhe di testo.

    Volendo posso usare anche access per fare l'operazione se può essere più semplice, perché il file excel viene poi importato in un database access

    Grazie
  • Re: Colonna con valore finale in 90

    Ho trovato dove inserire ed è perfetto, unica cosa se invece che la colonna A e B volessi usare altre colonne tipo Z ed X cosa dovrei modificare?
  • Re: Colonna con valore finale in 90

    Ciao
    il tutto è incentrato su questa parolina: Cells(i, 1)
    Essa fa riferimento ad una cella e le cifre (anche la i è una cifra) entro le parentesi si riferiscono al numero di riga la prima ed al numero di colonna la seconda.

    Per es. cells(1,1) è uguale a range("A1") mentre cells(1,26) è uguale a range("Z1"), come cells(3,3) è uguale a range("C3")

    Ciao,
    Mario
  • Re: Colonna con valore finale in 90

    Grazie mille risolto
  • Re: Colonna con valore finale in 90

    Ciao Marius,

    mi sono accorto solo ora di un problema riscontrato inserendo i numeri della prima cella invece che interi con le virgole, praticamente se metto
    € 31.977,40 mi esce 3197890

    come dovrei risolvere

    Grazie
  • Re: Colonna con valore finale in 90

    Devi sostituire la virgola con il punto.
  • Re: Colonna con valore finale in 90

    Ciao
    scusa, son stato fuori.

    Non hai parlato, prima, di numeri decimali ma se ti basta il risultato "arrotondato" basta cambiare questa riga
    a = Cells(i, 1).Value così a = Int(Cells(i, 1).Value)

    Ti darà un numero intero, arrotondato come prima, senza decimali.
    Ciao,
    Mario
  • Re: Colonna con valore finale in 90

    Ciao Marius,

    ho provato a fare la modifica ma mi da errore di run-time '13': tipo non corrispondente
  • Re: Colonna con valore finale in 90

    Scusa ancora Marius,
    sono riuscito a trovare dove mi dava l'errore perchè avevo erroneamente messo un campo di testo

    se uso però il codice nel modo che mi hai scritto se il valore A è 31.977,40 invece che darmi 31.990 mi da 32.090

    Come posso risolvere?
  • Re: Colonna con valore finale in 90

    Ciao
    La macro "corretta" (come ti ho scritto) è questa
    
    Option Explicit
    Sub arrotonda()
    Dim ur As Long, i As Long
    Dim a, b
    ur = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
    For i = 1 To ur
        a = Int(Cells(i, 1).Value)
        If Val(Right(a, 2)) <= 90 Then
            b = Left(a, Len(a) - 2) & "90"
        ElseIf Val(Right(a, 2)) > 90 Then
            b = Val(Left(a, Len(a) - 2)) + 1 & "90"
        End If
        Cells(i, 2) = b
    Next i
    End Sub
    
    Va inserita in un Modulo ed associata ad un pulsante. A me dà 31990
    Ciao,
    Mario
Devi accedere o registrarti per scrivere nel forum
18 risposte