Sapere in quale settimana del mese cade un giorno
Hai un problema con Excel? 
Sapere in quale settimana del mese cade un giorno
di ZurilVBA (utente non iscritto) data: 11/07/2016 22:34:11
Salve a tutti
Ho un problema su cui mi sto scervellando da un po' di tempo:
Ho un foglio di Excel 2010 dove vorrei che a seconda della data odierna, Excel mi vada ad identificare ed a scrivere i dati sulla riga della settimana corrispondete. Praticamente il mio programmino che sto realizzando funziona così: Ho un tasto che se premuto mi va ad incrementare il valore di 1 cella. Vorrei che quel valore venisse inserito nella cella corrispondente della settimana del mese in corso.
Se si preme il tasto nella prima settimana del mese, Il valore si incrementa su C3.
Se si preme il tasto nella seconda settimana del mese, Il valore si incrementa su C4.
Se si preme il tasto nella terza settimana del mese, Il valore si incrementa su C5.
Se si preme il tasto nella quarta settimana del mese, Il valore si incrementa su C6.
e nel caso il mese abbia 5 Settimane, il valore deve incrementarsi su C7.
La Settimana si chiude al Sabato.
Grazie anticipatamente per l'aiuto. Se qualcosa non è chiaro, chiedete pure
di Vecchio Frac data: 12/07/2016 09:03:38
Al volo, se non ho capito male, se ti serve sapere la settimana cui corrisponde una data, il metodo più semplice che io conosca è usare Format con l'apposito modificatore "ww":
Format(Date, "ww") --> restituisce il numero di settimana della data odierna
Il primo giorno della settimana è per default domenica quindi dovrebbe andare bene.
di patel data: 12/07/2016 09:04:08
allega il file
di Luca73 data: 12/07/2016 09:22:43
Ciao
Prova con la macro sotto riportata
Stavo per farla un po' più lunga ma poi ho trovato la funzione DateDiff che fa tutto lei.
Guarda se i parametri fanno quello che vuoi.
Ciao
Luca
Sub prova()
Dim RangeW
Set RangeW = Range("C2").Offset(DateDiff("ww", CDate("01/" & Month(Date) & "/" & Year(Date)), Date, vbSunday, vbFirstJan1))
RangeW = RangeW + 1
End Sub
|
di Vecchio Frac data: 12/07/2016 09:33:13
@Luca73
Non ho ben capito il tuo codice.
Comunque a rileggere, se a ZurilVBA serve il numero della settimana all'interno di un mese (cioè valori da 1 a 4 o da 1 a 5), io propongo il codice qui sotto.
E' una Function che accetta una data e restituisce il numero della settimana all'interno del mese, dove trovasi detta data.
Non testata completamente, ma dovrebbe funzionare.
Option Explicit
Function no_of_week_in_a_month(d As Date)
Dim m As Date, dx As Date
m = Format("1-" & Month(d) & "-" & Year(d))
For dx = CDate(m) To CDate(m) + 7
If Weekday(dx) = vbMonday Then Exit For
Next
no_of_week_in_a_month = (Day(d) + Day(dx)) 7
End Function |
di Luca73 data: 12/07/2016 10:54:14
Ciao Vecchio Frac
cosa non è chiaro nel codice?
In effetti non l'ho provato in dettaglio. in quanto funzione della data odierna.
in effetti lo avevo scritto per contare da inizio anno poi l'ho modificato al volo.
In teoria dovrebbe calcolare il numero di settimane da inizio mese e poi va ad incrementare di uno la cella della riga C spostata da C2 del numero di settimane.
Fammi sapere cosa non capisci così la modifico (sicuramente data la tua esperienza e le tue conoscenze sono io che ho sbagliato qualcosa)
In effetti c'era un errore ora l'ho corretto e mi sembra funzioni correttamente
Ciao
Luca
Sub prova()
Dim RangeW
Set RangeW = Range("C3").Offset(DateDiff("ww", CDate("01/" & Month(MyDate) & "/" & Year(MyDate)), MyDate, vbSunday, vbFirstJan1), 0)
RangeW.Value = RangeW.Value + 1
End Sub |
Grazie a tutti
di ZurilVBA (utente non iscritto) data: 12/07/2016 10:57:35
Grazie veramente di cuore a tutti. Ho usato l'ultima soluzione di @Luca73 e funziona alla grande. Siete stati davvero tutti molto cortesi e veloci a rispondere 😀 a presto.
di Vecchio Frac data: 12/07/2016 11:12:26
@Luca73
E' perchè non ho capito io la domanda iniziale :)
Se ZurilVBA è soddisfatto, ottimo.
La mia idea era che lui volesse sapere in quale settimana del mese si trovasse una certa data e la mia funzione restituisce questo valore (da farci poi ovviamente tutti gli spostamenti nel foglio necessari).
di Luca73 data: 12/07/2016 11:49:59
@ Vecchio Frac peccato stavolta non ho imparato nulla dal maestro...
@ ZurilVBA sono contento la prossima volta però allega un file che rendi a tutti le vita più semplice ed eviti fraintendimenti...
Ciao
Luca
Vuoi Approfondire?