Non ho provato il codice, ma noto che
1) a volte utilizzi la variabile orainzio e a volte orainizio (senza mai dichiararla peraltro ...)
2) dichiari le due variabili seguenti con
Dim datainizio, dataoggi As Date
e in questo modo solo la seconda sara' di tipo Date mentre la prima sara' Variant. Devi scrivere
Dim datainizio As Date, dataoggi As Date
3) ci sono due linee alla fine in cui setti la show ... ovviamente la prima viene ignorata ....