Condividi:        

Excel elenco data automatica

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

Excel elenco data automatica

Postdi markmoon » 31/07/08 11:07

Devo compilare un foglio di excel con delle date,ora quando scrivo giorno e mese solamente, automaticamente il programma mi compila anche l'anno(l'anno in corso però).Ora c'è la possibilità di dargli una regola per cui compilando giorno e mese,sia io a scegliere l'anno che voglio?
Avatar utente
markmoon
Utente Senior
 
Post: 437
Iscritto il: 28/04/06 19:03

Sponsor
 

Re: Excel elenco data automatica

Postdi Anthony47 » 01/08/08 02:46

Puoi farlo con una macro di WorksheetChange, ma con delle limitazioni.
Infatti dalla macro non riesco a sapere se l' anno e' stato inserito dall' operatore o da excel come riempimento automatico (Nota 1). Quindi possiamo fare in modo che l' anno venga corretto dalla macro a un valore predeterminato se quello nella cella e' l' anno corrente; il lato negativo e' che se devi mettere una data nell' anno corrente devi farlo impostando il valore predeterminato.
Cioe':
-imposti solo gg e mm; la macro aggiunge l' anno predeterminato
-imposti gg, mm e anno corrente; la macro modifica l' anno in quello predeterminato
-imposti gg, mm e altro anno; la data non viene modificata

Considerando che mettere l' anno vuol dire digitare 2 caratteri, secondo me il gioco non vale la candela. Comunque decidi tu.
Se ti interessa procedere:
-parti dal foglio dove devi inserire le date, e in una cella libera scrivi "l' anno predeterminato", es 2001; assegna alla cella il nome DefY (selezioni la cella, Menu /Inserisci /Nome /Definisci; scrivi DefY, Ok)
-tasto dx sul tab del nome: ti si apre l' editor delle macro
-copia e inserisci nella parte dx della finestra il seguente codice:

Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 1 Then Exit Sub        '<<<< Colonna con le date
If Not IsDate(Target) Then Exit Sub
If Year(Now) <> Year(Target) Then Exit Sub
Application.EnableEvents = False
Target.Value = DateSerial(Range("DefY").Value, Month(Target.Value), Day(Target.Value))
Application.EnableEvents = True
End Sub

Guarda l' istruzione marcata <<<: essa spiega su quale colonna si vuole applicare la regola, ed ora e' impostata su col A (la colonna 1); se le tue date sono in altra colonna cambia il numero (se fossero in piu' colonne potrebbe essere necessario fare qualche adattamento, se non riesci posta ancora con i dettagli delle colonne che usi).
Torna su excel, digita una data con solo gg e mm e vedi l' effetto.

Nota1: una variante potrebbe essere quella di formattare come testo la colonna che deve contenere le date, e poi operare con una macro; ma gli svantaggi sono assolutamente superiori al vantaggio di non digitare i 2 caratteri.

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


Torna a Applicazioni Office Windows


Topic correlati a "Excel elenco data automatica":


Chi c’è in linea

Visitano il forum: Nessuno e 55 ospiti