Volevo fare un programmino che mi trovava il perimetro dati i lati di un trapezio, ma quando eseguo mi da un errore:

Overflow di un operazione aritmetica

codice:
Sub TrovaPerimetro()

        Dim x As Int16 'lato x
        Dim y As Int16 'lato y
        Dim z As Int16 'lato z
        Dim p As Int16 'semiperimetro

        Dim area as Double

        For x = 1 To 20
            For y = 1 To 20
                For z = 1 To 20
                    p = (x + y + z) / 2
                    If x < p And y < p And z < p Then
                        
'l' errore è in questa riga:
area = p * (p - x) * (p - y) * (p - z) End If If area = 270 ^ 2 Then Numeri.Items.Add("x: " & x & " y: " & y & " z: " & z) End If Next Next Next End Sub
Volevo sottolineare che se uso numeri più piccoli non ho l' errore ma a me servono numeri grandi.

Qualcuno sa risolvere il problema? Grazie anticipatamente