posts - 30, comments - 0, trackbacks - 4

Settimanale

Ci avviamo all’inizio del nuovo anno e con questo al cambio di calendari agende ecc.

Perché non utilizzare un programmino che ci permette di stampare in proprio un Settimanale.

Cosa deve fare il programma:

·         Visualizzare in una pagina tutte le informazioni della Settimana.

·         Segnalare Con una riga in rosso la settimana corrente

·         Nella parte in alto devono essere visualizzate le seguenti informazioni:

o        Anno;

o        Mese;

o        Data primo giorno della settimana;

o        Data ultimo giorno della settimana;

o        Date di tutti i giorni della settimana;

o        Numero della settimana.

 

Per fare quello che vogliamo Excel ci offre le funzioni che ci servono?

Purtroppo no! Però con il VBA. Ci permette di creare quanto ci serve.

      Quelle che mancano, sono due funzioni una che ci fornisce la settimana dell’anno di una certa data e un'altra che ci fornisce una data Passando come parametri giorno, mese è Anno, a dire il vero questa seconda funzione esiste, si tratta di “DATA(Anno;Mese;Giorno)” ma volevo qualcosa per poter inserire la data in italiano “PrimoGiornoMese(Giorno,Mese,Anno).

 

Ma questa è solo una preferenza chi vuole può utilizzare la funzione predefinita.

Le celle con le date sono formattate con 2 condizioni, tramite la Formattazione Condizione.

 

  1. il pulsante “Stampa” che ci permette di stampare le settimane che noi sceglieremo in seguito.
  2. Sotto la scritta “Anno” si trova l’altro pulsante che ci ha le stesse funzioni del precedente ma solo in visualizzazione, quindi ci farà vedere le varie settimane ma non li stamperà. 

'################################################################################

 

Passiamo al codice:

All’apertura del file facciamo in modo che venga visualizzato a schermo intero.

 

Option Explicit

Public Sub Workbook_Open()

Application.WindowState = xlMaximized

End Sub

'################################################################################

‘I due pulsanti presenti nel foglio di lavoro, visualizzano la maschera che permette di scegliere le settimane da analizzare.

‘Scelte le settimane un pulsante ci permette di vedere le varie settimane, l’altro anche di stamparle.

‘I pulsanti comunque non verranno stampati.

 

 

Private Sub Anno_Click()

ImpostaSettimaneStampa.Show

Call Vedi_tutto

End Sub

 

Private Sub stampa_Click()

ImpostaSettimaneStampa.Show

Call Stampa_tutto

End Sub

'################################################################################

 

Option Explicit

Public CU_PrimaSettimanaStampa As Currency

Public CU_UltimaSettimanaStampa As Currency

'################################################################################

Sub Vedi_tutto()' Codice che permette di vedere le settimane selezionate

Dim CU_A As Currency

For CU_A = CU_PrimaSettimanaStampa To CU_UltimaSettimanaStampa

Worksheets("settimana").Cells(3, 12).Value = CU_A 'scrivo nella cella L3 la settimana che analizzo

MsgBox " Sto lavorando sulla settimana " & CU_A

Next

Worksheets("settimana").Cells(3, 12).Value = 1

End Sub

'################################################################################

 

Sub Stampa_tutto() ' Codice che permette di stampare le settimane selezionate

Dim CU_A As Currency

For CU_A = CU_PrimaSettimanaStampa To CU_UltimaSettimanaStampa

Worksheets("settimana").Cells(3, 12).Value = CU_A 'scrivo nella cella L3 la settimana che analizzo

MsgBox " Sto  lavorando sulla settimana " & CU_A

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

Next

Worksheets("settimana").Cells(3, 12).Value = 1

End Sub

'################################################################################

 

' Funzione che permette di calcolare la settimana dell’anno passando come parametri il primo giorno dell’anno presente nella cella B6 e la data da analizzate.

Function Settimana(DataInizio As Date, DataDaAnalizzare As Date) As Currency

Dim DA_A As Date

Settimana = 1

For DA_A = DataInizio + 1 To DataDaAnalizzare

If Weekday(DA_A) = 2 Then

Settimana = Settimana + 1

End If

Next DA_A

End Function

'################################################################################

 

Function PrimoGiornoMese(Giorno As Currency, Mese As Currency, Anno As Currency) As Date

PrimoGiornoMese = DateSerial(Anno, Mese, Giorno)    ' Restituisce una data

End Function

 

'################################################################################

 

 

 

Scarica : http://www.ippocampo.org\public\SettimanaleShareOffice.zip 

?>

posted on sabato 17 dicembre 2005 22.59