Finalmente he encontrado una manera un tanto peregrina de hacerlo.
Durante el proceso en que he capturado el click para imprimir, aún puedes manejar el objeto del informe, en mi caso CRViewer. Si consultas la variable de last page, te devuelve la unltima página que ha visto el usuario, con lo cual si no se mueve devuelve 1. Pero con la función de showlastpage, puedes obligar al viewer a moverse a la ultima página y después, recoger last page.
Yo lo hago con las dos siguientes líneas de código, en el proceso que captura el clickeo en el botón de imprimir:
Código:
Dim intTotalPages As Integer
CRViewer.ShowLastPage
CRViewer.GetLastPageNumber intTotalPages, True
Espero que a alguien le sirva, saludos.