ho dimenticato di precisare una cosa:
nelle due date e' presente anche l'ora e questa deve influire nel conteggio.
io nella funzione ho gia' questo codice che tiene conto dei sabati e domeniche....

Dim ckTrovato As Boolean
Dim rQ As ADODB.Recordset
Dim gg, sSql As String
Dim i As Integer
Dim DataAddDay As Date

On Error GoTo CheckError

CalcoloOre = 0


If IsDate(DataInizio) And IsDate(DataFine) Then
CalcoloOre = DateDiff("n", DataInizio, DataFine)

ckTrovato = False
i = 0
Do While Not ckTrovato
DataAddDay = DateAdd("d", i, DataInizio)
gg = Weekday(DataAddDay)
If gg = 1 Or gg = 7 Then
CalcoloOre = CalcoloOre - 1440
End If

If DateDiff("d", DataAddDay, DataFine) = 0 Then
ckTrovato = True
End If
i = i + 1
Loop

If CalcoloOre <= 0 Then
CalcoloOre = 0
Else
CalcoloOre = (CalcoloOre / 60)
End If
End If