Lieto di leggere che non volevi spezzettare il database.
La macro e' così elementare che non sono riuscito ad associare il problema che segnali a qualche situazione strana.
Modifica il codice aggiungendo uno Stop prima e uno dopo il presunto smazzamento, piu' un "debug.print", come segue:
- Codice: Seleziona tutto
Sheets("Dic").Select '<<<<<<<<<<< Il foglio di partenza
Stop
For I = 1 To Cells(Rows.Count, "B").End(xlUp).Row
If IsDate(Cells(I, "B").Value) Then
deSh = Format(Cells(I, "B"), "mmmm")
NextR = Sheets(deSh).Cells(Rows.Count, "B").End(xlUp).Row + 1 '**
Debug.Print I, Cells(I, "B"), deSh, NextR
Cells(I, 2).Resize(1, 6).Copy Sheets(deSh).Cells(NextR, "B") '**
End If
Next I
Stop
Quando la macro si ferma al primo Stop controlla il contenuto di "dic" per vedere se le righe sono tutte con una data valida.
Quando si ferma sul secondo Stop controlla quali righe siano state smazzate e quali no; poi apri la finesta Immediata del vba, copia tutto quello che ci trovi dentro e pubblicalo nel tuo prossimo messaggio, insieme ad eventuali constatazioni del foglio di partenza (dic) e di come e' andato lo smazzamento.
Per aprire la finesta Immediata: dal vba, premi Contr-g, oppure usa Menu /Visualizza /Finestra Immediata
Ciao