Excel Forum Per condividere esperienze su Microsoft Excel

Incrementare valore in un codice con formattazione generale

  • Messaggi
  • OFFLINE
    BG66
    Post: 341
    Registrato il: 13/12/2015
    Città: MILANO
    Età: 58
    Utente Senior
    2010
    00 13/04/2021 10:06
    Buongiorno a tutti.
    Se nella colonna H avessi un valore numerico usando:
    =SE(D5<>"";H4+1;"attesa dati")

    In pratica se in H4 il numero di preventivo fosse: 112 -> in H5 otterrei correttamente -> 113.

    Ma il mio numero di preventivo è 21/112/AT e quindi il risultato atteso dovrebbe essere : 21/113/AT

    Grazie per l'aiuto.
    BG66
    Excel 2010
  • OFFLINE
    dodo47
    Post: 3.138
    Registrato il: 06/04/2013
    Utente Master
    2010
    10 13/04/2021 10:38
    ciao Gene
    se il progressivo è sempre di tre cifre, puoi estrarre con stringa.estra(progPrecedente,4,3) il numero, aggiungi 1 e con un sosituisci lo reinserisci nel progressivo:

    in pratica in S5:=SOSTITUISCI(S4;STRINGA.ESTRAI(S4;4;3);STRINGA.ESTRAI(S4;4;3)+1)

    saluti

    (si può far meglio)



    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    BG66
    Post: 341
    Registrato il: 13/12/2015
    Città: MILANO
    Età: 58
    Utente Senior
    2010
    00 13/04/2021 11:45
    Ciao Domenico,
    farò in modo che sia sempre di tre cifre 😉!!
    =SE(O6<>"";SOSTITUISCI(S5;STRINGA.ESTRAI(S5;4;3);STRINGA.ESTRAI(S5;4;3)+1);"attesa dati")


    Grazie e alla prossima.

    STAY SAFE
    [Modificato da BG66 13/04/2021 11:47]
    BG66
    Excel 2010
  • OFFLINE
    dodo47
    Post: 3.139
    Registrato il: 06/04/2013
    Utente Master
    2010
    00 13/04/2021 12:55
    occhio...che se in S4 hai 21/001/AT, ti viene fuori 21/2/AT, per modificare devi usare TESTO

    sempre in S5: =SE(O5<>"";SOSTITUISCI(S4;STRINGA.ESTRAI(S4;4;3);TESTO(STRINGA.ESTRAI(S4;4;3)+1;"000"));"attesa dati")

    saluti




    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    Marius44
    Post: 905
    Registrato il: 24/06/2015
    Città: CATANIA
    Età: 80
    Utente Senior
    Excel2019
    00 13/04/2021 13:01
    Ciao a tutti

    @BG66
    Gene, se vuoi che non tenga conto delle 3 cifre del numero ma funzioni anche con 1, 2 o 4 e più, metti questa macro nel modulo del foglio interessato
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("o:o")) Is Nothing Then
    If Target = "" Then
    Exit Sub
    ElseIf Cells(Target.Row, "S") = "attesa dati" Then
    Cells(Target.Row - 1, "S").Select
    num = Split(Cells(Target.Row - 1, "S"), "/")
    num(1) = Val(num(1)) + 1
    Cells(Target.Row, "S") = num(0) & "/" & num(1) & "/" & num(2)
    Cells(Target.Row + 1, "S") = "attesa dati"
    End If
    End If
    End Sub


    Provvedi tu a "professionalizzare" la macro inserendo Option Explicit e la dichiarazione delle variabili.

    Ciao, Mario
  • 15MediaObject5,0015 1