Clng() en vb informa un error. "El tipo 13 no coincide
Cuando la longitud de idhex es menor que 3, idhex1 está vacío, iddec1 = clng ("amp; H" amp; idhex1), el parámetro está fuera de rango y, por supuesto, se produce un error
En este De esta manera, idhex1 debe cumplir con el valor mínimo de 100, correspondiente al valor de id 256, puedes agregarlo después de la línea idhex = Hex(id):
Si Len(idhex) = 1 Entonces idhex = "00" idhex
Si Len(idhex) = 2 Entonces idhex = "0" idhex
Esto puede cumplir con el requisito de que la longitud de idhex no sea inferior a 3
.