La funcion Dateserial, la utilice para lo mismo que vos la estas utilizando. yo desarrollé un software para la empresa donde laboro y tuve que realizar lo mismo. Aunque yá no me acuerdo; estoy revisando los manuales y algoritmos por encima y es asi:
Necesito sacar la fecha final de febrero del 2010
Año=2010
Mes=2
Label5.Caption = DateSerial(Año, Mes + 1, 1 - 1)
como vés, el año va normal. al mes, le sumo una unidad, osea, que como Mes me da un 3 (marzo) y luego le doy el dia 1(de marzo) menos 1 como resultado, el dia 1 menos 1 nos da el dia final del anterior mes. osea el de febrero.
pruebalo, se que te debe dar. sin embargo como te dije, lo mire por encima y no me acurdo bien del codigo fuente.