Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

evento change per inserimento date

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

evento change per inserimento date

Postdi miko » 06/07/17 10:12

salve,
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
windows 10 - office 2013
miko
Utente Senior
 
Post: 467
Iscritto il: 29/12/09 10:44

Sponsor
 

Re: evento change per inserimento date

Postdi Anthony47 » 07/07/17 02:30

Non ho capito tutto cio' che hai detto, comunque tieni presente che la macro SOSTITUISCI_ANNO modifica il contenuto del foglio di lavoro, e quindi fa scattare in continuazione la Sub Worksheet_Change.
Tu che sai cosa fa SOSTITUISCI_ANNO e cosa fa Worksheet_Change puoi capire se le due cose sono in contrasto.

Se vuoi che, durante l'esecuzione di SOSTITUISCI_ANNO la Worksheet_Change non scatti allora devi disabilitarne la gestione:
Codice: Seleziona tutto
                 ElseIf Risposta = vbYes Then
Application.EnableEvents = False                 '<<< AGGIUNGERE QUI
                    For K = 7 To URF
Riabilitandola ovviamente alla fine:
Codice: Seleziona tutto
     End With
Application.EnableEvents = True                  '<<< AGGIUNGERE QUI
End Sub


Due commenti a colpo d'occhio:
1) (Dim) Target As Range:
questa dichiarazione e' equivoca, perche' dichiara una entita' gia' esplicitamente dichiarata nella Worksheet_Change; andrebbe eliminata
2) With Worksheets("Foglio1") 'PRIMO WITH PRINCIPALE (/End With)
Questa With e' inultile, perche' tutto il codice inserito nel modulo di codice di Foglio1 per definizione fa riferimento a Foglio1, se non dichiarato diversamente nella istruzione; puo' essere eliminato (previo adattamento del codice).

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 17449
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "evento change per inserimento date":


Chi c’è in linea

Visitano il forum: Nessuno e 27 ospiti