Stellar Blade Un'esclusiva PS5 che sta facendo discutere per l'eccessiva bellezza della protagonista. Vieni a parlarne su Award & Oscar!
 
Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Incrementare valore in un codice con formattazione generale

Ultimo Aggiornamento: 13/04/2021 13:01
Post: 341
Registrato il: 13/12/2015
Città: MILANO
Età: 58
Utente Senior
2010
OFFLINE
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
Post: 3.138
Registrato il: 06/04/2013
Utente Master
2010
OFFLINE
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
Post: 341
Registrato il: 13/12/2015
Città: MILANO
Età: 58
Utente Senior
2010
OFFLINE
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
Post: 3.139
Registrato il: 06/04/2013
Utente Master
2010
OFFLINE
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
Post: 905
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Senior
Excel2019
OFFLINE
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
Vota: 15MediaObject5,0015 1
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 04:25. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com