ho realizzato alcune macro per inserire nelle celle le date, sfruttando l' evento change, con la possibilità di modificare parte della data, per il momento solo l'anno;
vi invio il file contenente il codice:
http://www.filedropper.com/eventochangeperdate
mi sono soffermato sulle date che sono quelle che mi creano problemi; per l'inserimento dei valori nelle altre colonne, con riferimento al topic 'progetto spese' basta usare le macro ivi contenute e seguire i suggerimenti di Anthony.
le macro considerate singolarmente funzionano, ma se vengono inserite contemporaneamente e si avvia la sub "SOSTITUISCI_ANNO" ricevo errore nell'evento change;
non sono riuscito a modificare il codice per un corretto funzionamento.
vi descrivo l'uso del codice.
in una cella di colonna F, nel mio caso la F76, vi è un dato certo e sicuro per cui ho preso questa cella come riferimento per il calcolo del numero di righe.
se in una cella di colonna D inserisco una successione di 8 numeri, del tipo 01122017, con l'evento change
la linea di codice:
- Codice: Seleziona tutto
.NumberFormat = "@"
formatta la cella in formato testo, mentre la linea
- Codice: Seleziona tutto
.Value = "'" & Format(cl.Value, "00000000")
con il carattere iniziale ( ' ), apostrofo, permette di considerare lo zero iniziale.
il numero inserito viene trasformato nella data 01-12-2017.
e questo funziona.
la sub 'SOSTITUISCI_ANNO' nel modulo 2, permette di modificare il solo anno nelle celle di colonna D, ed anche questa, da sola, funziona.
se però in uno stesso foglio inserisco l'evento change e la sub precedente ed avvio quest'ultima
si ha errore, e non capisco il perché.
ho inserito pure, nel modulo 1, la Sub INSERISCI_ANNO, anche questa funzionante, che ho preso da questo topic 'gestire "Annulla" di inputbox' e modificato gli inputbox, per rivedere il loro funzionamento.
questa sub permette di modificare l'anno, nelle celle di colonna D, con l'uso di inputbox richiamando la sub 'SOSTITUISCI_ANNO'.
in questa sub ho solo dei dubbi sull'uso dei vari On Error... che ho inserito, forse troppi e non nel posto giusto.
cosa bisogna modificare in questo codice per renderlo funzionante?
grazie, ciao