Foros del Web » Programación para mayores de 30 ;) » .NET »

Problema con cadena en VBA

Estas en el tema de Problema con cadena en VBA en el foro de .NET en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 23/02/2016, 04:02
 
Fecha de Ingreso: febrero-2015
Mensajes: 404
Antigüedad: 9 años, 8 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?

Etiquetas: cadena, net, vba
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:58.