Ciao,
questa macro dovrebbe risolverti il problema:
codice:
Private Sub CommandButton1_Click()
Worksheets("Foglio1").Rows(1).Copy
Paste Destination:=Worksheets("Lun").Range("a1")
Paste Destination:=Worksheets("Mar").Range("a1")
Paste Destination:=Worksheets("Mer").Range("a1")
Paste Destination:=Worksheets("Gio").Range("a1")
Paste Destination:=Worksheets("Ven").Range("a1")
Paste Destination:=Worksheets("Sab").Range("a1")
Paste Destination:=Worksheets("Dom").Range("a1")
Worksheets("Foglio1").Rows(2).Copy
Paste Destination:=Worksheets("Lun").Range("a2")
Paste Destination:=Worksheets("Mar").Range("a2")
Paste Destination:=Worksheets("Mer").Range("a2")
Paste Destination:=Worksheets("Gio").Range("a2")
Paste Destination:=Worksheets("Ven").Range("a2")
Paste Destination:=Worksheets("Sab").Range("a2")
Paste Destination:=Worksheets("Dom").Range("a2")
For Each casella In Worksheets("Foglio1").Range("a3:a1000")
If IsDate(casella.Value) Then
Select Case Weekday(casella.Value)
Case 1
Worksheets("Foglio1").Rows(casella.Row).Copy Destination:=Worksheets("Dom").Cells((Worksheets("Dom").Range("D:D").End(xlDown).Row + 1), 1)
Case 2
Worksheets("Foglio1").Rows(casella.Row).Copy Destination:=Worksheets("Lun").Cells((Worksheets("Lun").Range("D:D").End(xlDown).Row + 1), 1)
Case 3
Worksheets("Foglio1").Rows(casella.Row).Copy Destination:=Worksheets("Mar").Cells((Worksheets("Mar").Range("D:D").End(xlDown).Row + 1), 1)
Case 4
Worksheets("Foglio1").Rows(casella.Row).Copy Destination:=Worksheets("Mer").Cells((Worksheets("Mer").Range("D:D").End(xlDown).Row + 1), 1)
Case 5
Worksheets("Foglio1").Rows(casella.Row).Copy Destination:=Worksheets("Gio").Cells((Worksheets("Gio").Range("D:D").End(xlDown).Row + 1), 1)
Case 6
Worksheets("Foglio1").Rows(casella.Row).Copy Destination:=Worksheets("Ven").Cells((Worksheets("Ven").Range("D:D").End(xlDown).Row + 1), 1)
Case 7
Worksheets("Foglio1").Rows(casella.Row).Copy Destination:=Worksheets("Sab").Cells((Worksheets("Sab").Range("D:D").End(xlDown).Row + 1), 1)
End Select
End If
Next
MsgBox ("fatto")
End Sub
Il foglio di origine deve chiamarsi Foglio1 e i fogli di destinazione Lun, Mar, Mer, Gio, Ven, Sab, Dom, se non si chiamano così adatta la macro con i nomi dei tuoi fogli (e occhio alle maiuscole).
Per capire in che riga incollare, questa macro prende a riferimento l’ultimo valore presente nella colonna D del foglio di destinazione perché dall’immagine vedo che la colonna D è sempre piena, se quella colonna dovesse invece avere dei buchi, usane un’altra che sia sempre piena (basta sostituire i sette D:D che vedi nella macro).
La macro lavora fino alla riga 1000, se ti serve di più modifica il range della foreach.
Te la spiego brevemente.
Inizialmente viene fatto un copia incolla delle prime due righe nelle prime due di tutti i fogli e poi parte il ciclo di esame delle celle della colonna A. Per ogni cella si determina il giorno della settimana con la funzione Weekday e si effettua la copia nel foglio opportuno.
Se serve altro chiedi pure.
Ciao