Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/02/2016, 04:02
aguml
 
Fecha de Ingreso: febrero-2015
Mensajes: 404
Antigüedad: 9 años, 2 meses
Puntos: 3
Problema con cadena en VBA

Hola amigos, ya se que esto no es sobre .net pero no sabia donde ponerlo y al menos aqui se habla de VB asi que perdonen si hice mal.
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:
Ver original
  1. 'Fabrica un serial a raiz de la fecha actual
  2. 'su formato será "0000-0000-0000-0000"
  3. Function get_serial_date()
  4.     Dim clave1, clave2, clave3, clave4 As Long
  5.     Dim serial As String
  6.    
  7.     clave1 = CDbl(Date) Xor 123456
  8.     clave2 = clave1 Xor ((clave1 Mod 10) Xor 5) * 1000
  9.     clave3 = clave2 Xor 10101
  10.     clave4 = clave3 And 10101
  11.     serial = Right(Format(Hex(clave1), "0000"), 4) & "-" & _
  12.              Right(Format(Hex(clave2), "0000"), 4) & "-" & _
  13.              Right(Format(Hex(clave3), "0000"), 4) & "-" & _
  14.              Right(Format(Hex(clave4), "0000"), 4)
  15.     get_serial_date = serial
  16. End Function
El caso es que clave3 se muestra como "0000" en el serial pero no vale 0.
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?