Controllo Calendario (Controllo ActiveX : MSCAL.OCX). - pagina vista: volte

Sappiamo che Excel ci consente di inserire degli "oggetti" nei nostri lavori, "oggetti" normalmente "estranei" al foglio di lavoro e che spesso appartengono al mondo del Visual Basic : sono "oggetti" anche appartenenti ai "Controlli ActiveX" come ad esempio tutti gli "oggetti" presenti nella barra "Strumenti di Controllo" (alias "Casella degli strumenti" nelle precedenti versioni di Excel), inseribile dal menu : Visualizza/Barre degli strumenti/Strumenti di controllo, sul foglio di lavoro, oppure in ambiente vba (nell'Editor del VBA), dal menu : Visualizza/Barre degli strumenti; la stessa barra che appare quando si inserisce una UserForm (altro "oggetto" ActiveX pure lei).

Oggi ci occupiamo del "Controllo (ActiveX) Calendario", (che NON è presente nella barra "strumenti di controllo") tanto per intenderci questo:


Il controllo MSCAL.OCX viene installato sul computer durante l'installazione della Suite di Microsoft Office Professional, (oppure con l'installazione del solo MSAccess) e viene installato nella cartella C:\Programmi\Microsoft Office\OfficeVV*\MSCAL.OCX  (VV* = vostra versione; ogni versione di Office installa una propria versione del controllo) e/o C:\Windows\System32\ e "registrato" anche come "Classe" (CLSID).

A cosa serve? Sicuramente ad abbellire i nostri lavori, rendendoli, se vogliamo, un pò più professionali (?), e comunque dovrebbe servire a inviare ad una cella del foglio di lavoro oppure ad una TextBox (se posto su una UserForm), la data visualizzata, evidenziata, sul controllo stesso; quando si attiva il controllo, di default , si imposta sulla data del giorno, ma ovviamente è possibile, come appunto in un "Calendario", selezionare una qualsiasi data futura o passata, ed avremo che la data nella cella o nella TextBox corrisponderà alla data che avremo selezionato.

Come tutti i "Controlli ActiveX" possiede degli "eventi" (gli "eventi" corrispondono ad "azioni" che si compiono su o con l'"oggetto" e che possono essere sfruttati per attivare, lanciare delle istruzioni) e l'evento predefinito del Controllo Calendario è l'evento Click (che si verifica appunto quando "Cliccheremo" sul calendario per selezionare una data); le istruzioni che useremo sono molto semplici: useremo la proprietà Value del Controllo Calendar che restituisce la data impostata e dovremo indicare la cella, la textbox o la variabile che sarà uguale alla data selezionata, ma possiamo usare altre proprietà  come ad esempio Year per ottenere l'anno, Month per il mese, Day per il giorno; esempi con Value:

  • Private Sub Calendar1_Click()
    Sheets(1).[A1] = Calendar1.Value 
     'inviamo la data ad una cella del foglio1
    End Sub

  • Private Sub Calendar1_Click()
    TextBox1 = Calendar1.Year        
     'inviamo della data selezionata, solo l'anno, ad una TextBox (alla 1)        
    End Sub

  • Private Sub Calendar1_Click()
    Dim MiaData As Date
    MiaData = Calendar1.Day       
    'assegniamo alla variabile MiaData il solo giorno della data selezionata
    MsgBox MiaData                       
    ' e ne facciamo ciò che ci pare.....
    End Sub

Oltre agli "eventi" possiede "proprietà" i cui valori possono essere adattati alle personali esigenze, possiamo modificare colori, aspetto shadow, fonts, dimensioni, ecc. ecc., e si interviene sulle "proprietà" o sugli "eventi" entrando in "modalità progettazione" (cliccare icona "squadretta" ) sia sul foglio sia in ambiente vba.

Come lo inseriamo ? Sul foglio di lavoro, selezionare una cella e dal menù Inserisci, scegliere: Oggetto, si aprirà la finestra in cui dovremo selezionare la voce "Calendar Control 10.0" (oppure 11, o 13, o ancora Controllo Calendario 8.0 - dipende dalla versione installata), e premere OK, vedi immagine:

a questo punto precisiamo: quando si inserisce questo controllo, ci troveremo direttamente in modalità progettazione, (vedi sotto)

e se vorremo accedere alle proprietà o agli eventi, potremo doppiocliccare sul calendario appena inserito ed excel ci mostrerà l'ambiente dell'editor di visual basic, con l'evento Clic del Controllo già in primo piano: come si nota dalle frecce, excel ha già predisposto la sub Calendar1_Click che si troverà sul modulo del foglio (il 3 nell'esempio) sul quale abbiamo incollato il calendario; la freccia in basso punta alla finestra delle "proprietà" da ev. modificare nelle impostazioni. E' nella sub che dovranno essere inserite le istruzioni viste sopra.

Finito di scrivere le nostre cose, usciremo da "modatiltà progettazione" semplicemente ricliccando sull'icona della squadretta ( ).

Gli utenti che useranno invece il Controllo Calendario in ambiente vba, quindi inserito su UserForm, seguiranno le procedure già descritte in molti articoli per l'inserimento di controlli aggiuntivi, dalla "casella degli strumenti" (vedi anche articoli vba/form.htm vba/vba98.php su questo sito) dove spiego come inserire "Controlli Aggiuntivi".

 


 

 

buon lavoro.

prelevato sul sito www.ennius.altervista.org