Mi duda es la siguiente, estoy intentando crear un serial en excel con vba el cual me lo pedirá al abrirse un libro y comprobará si coincide y si no es asi se cerrará el libro. El serial lo calculo a partir de la fecha actual con lo que cada dia sería un serial diferente y me crearia un generador de seriales el cual llevaria conmigo para saber que clave toca cada dia. Esa es la idea y este es mi codigo:
Código vb:
El caso es que clave3 se muestra como "0000" en el serial pero no vale 0.Ver original
'Fabrica un serial a raiz de la fecha actual 'su formato será "0000-0000-0000-0000" Function get_serial_date() Dim clave1, clave2, clave3, clave4 As Long Dim serial As String clave1 = CDbl(Date) Xor 123456 clave2 = clave1 Xor ((clave1 Mod 10) Xor 5) * 1000 clave3 = clave2 Xor 10101 clave4 = clave3 And 10101 serial = Right(Format(Hex(clave1), "0000"), 4) & "-" & _ Right(Format(Hex(clave2), "0000"), 4) & "-" & _ Right(Format(Hex(clave3), "0000"), 4) & "-" & _ Right(Format(Hex(clave4), "0000"), 4) get_serial_date = serial End Function
Si quito la parte de Right me muestra un numero muy largo que tampoco es el valor que tiene clave3. ¿alguien me puede ayudar con esto?