Eh, mi sembrava Alfredo che avessi dimenticato qualcosa...
Aggiungo una procedura per inserire facilmente il codice:
-tasto dx sul tab col nome del foglio All; scegli Visualizza Codice per aprire l'editor delle macro; copia il codice e incollalo nel frame destro vuoto della finestra che si e' aperta.
-poi torna su Excel; quando compili o comunque modifichi una colonna F allora tutta la riga dovrebbe essere accodata al mese di riferimento.
TUTTAVIA secondo me Suleyman si deve decidere: o popola e aggiorna il contenuto dei mesi (a) e da questi popola il foglio ALL, oppure popola e aggiorni il foglio ALL (b) e da questo, quando gli serve, crea una "vista mensile" del mese che ti serve. IO propendo per l'ipotesi "b"
La procedura che ha in mente invece non puo' che creare confusione ad esempio quando si cancella una prenotazione, o la si ripianifica, o si modifica un solo campo del record.
Ad esempio, con questa macro:
- Codice: Seleziona tutto
Sub Monthly()
Dim I As Long, cMon As String, tSh As String, Rispo, pMess As String
'
pMess = "Posso CANCELLARE il contenuto dei fogli Mensili e ricrearli dal contenuto di ALL?" & _
vbCrLf & "Primi SI per procedere; NO per fermarsi"
Rispo = MsgBox(pMess, vbYesNo, "Conferma...")
If Rispo <> vbYes Then Exit Sub
Sheets("All").Select
For I = 0 To 11
tSh = Application.WorksheetFunction.Text(Application.WorksheetFunction.EDate(Now, I), "[$-" & "409" & "]" & "mmmm")
Sheets(tSh).Cells.ClearContents
Range("A1:J1").Copy Sheets(tSh).Range("A1")
Next I
For I = 2 To Cells(Rows.Count, "B").End(xlUp).Row
If Cells(I, 2) >= DateSerial(Year(Now), Month(Now), 1) Then
tSh = Application.WorksheetFunction.Text(Cells(I, 2), "[$-" & "409" & "]" & "mmmm")
Sheets(tSh).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(1, 10) = Cells(I, 1).Resize(1, 10).Value
End If
Next I
MsgBox ("Fogli Mensili creati")
End Sub
Per inserire il codice:
-premi Alt-F11 per aprire l'editor delle macro
-Menu /Inserisci /Modulo
-Copia il codice e incollalo nel frame dx del modulo appena creato
Poi torna su Excel e quando vuoi creare le viste mensili lancia la macro Monthly:
-premi Alt-F8
-seleziona Monthly dall'elenco di macro disponibili
-premi Esegui
Oppure Inserisci sul foglio All un pulsante e vi associ la Macro Monthly.
La macro chiede conferma di poter CANCELLARE il contenuto dei file mensili e ricrearli; se Si i fogli mensili vengono azzerati e ricreati posizionando nel giusto foglio mensile ogni riga del foglio ALL che abbia una data superiore al 1° del mese corrente.
La macro si aspetta che ci siano 12 fogli, ognuno col nome January, February,... December (va bene la sequenza che c'e' nel file pubblicato), che rappresenta un periodo di 12 mesi futuri a partire dal mese corrente. Ad esempio, oggi nel foglio October ci finiranno tutte le date del mese Ottobre 2018; ma al 1° Novembre il foglio October sara' destinato a contenere le prenotazioni di Ottobre 2019.
Questo richiede una certa attenzione al cambio del mese.
Una possibile alternativa potrebbe essere nominare i fogli nella notazione October_2018, November_2018, .... October_2019, November_2019, ... in modo che sia sempre chiaro quali siano i mesi futuri e quali quelli passati; o semplicemente, a fine mese, rinominare il foglio come October_2018 e inserire un nuovo foglio October.
Vedi se quanto proposto puo' essere di tuo interesse.
Ciao