Como poner en hoja oculta el numero serie ordenador que la utiliza

Buenos días y gracias por su atención. El siguiente código puesto en ThisWorkbook determina si se puede utilizar un libro en un determinado ordenador:

Private Sub Workbook_Open()
Dim Serie As String
Dim FSO As Object
Dim Disco duro As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Disco duro = FSO.GetDrive("c:")
Serie = Disco duro.SerialNumber
If Serie <> "-2222222222" And Serie <> "2777726800" Then
MsgBox "ESTE EQUIPO NO ESTÁ AUTORIZADO PARA EL USO DE ESTE PROGRAMA"
Application.Quit
End If
Set Disco duro = Nothing
Set FSO = Nothing
End Sub

A raíz de la respuesta a la pregunta formulada ayer Controlar en una hoja oculta de un libro la fecha y la hora en la que se modifica el libro.

No se como poner el valor de Serie en esa hoja oculta en a1, para después poner en a2, b2 el resto de la información sobre modificaciones en las hojas del libro.

De antemano agradezco su tiempo y su ayuda.

1 respuesta

Respuesta
1

Luego de obtener el nro de serie (Serie = Disco_duro.SerialNumber) colocá ese dato en la celda que quieras:

Sheets("Hoja1").Range("A1").value = Serie

Solo ajustá el nombre de tu hoja y la variable Disco_duro a la que le agregué un guión porque estaba con espacio.

Gracias por su respuesta, pero me he expresado mal ya que no funciona.

Después del obtener Serie= Disco_duro.SerialNumber (gracias por la corrección) y según la pregunta contestada por Luis Mondelo el día 18 http://www.todoexpertos.com/mitodoexpertos/question/3ujncxugcxstk/controlar-en-una-hoja-oculta-de-un-libro-la-fecha-y-la-hora-en-la-que-se-modifica-el-libro genero el siguiente código:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.EnableEvents = False
Sheets("hoja3").Range("a65000").End(xlUp).Offset(1, 0).Value = Date & "--" & Time & " en la hoja: " & ActiveSheet.Name
1 Application.EnableEvents = True
End Sub

Pues bien es dentro de ese código, si ello es correcto, en donde quiero poner en la primera celda de la línea vacía el valor de serie, sabiendo así en esa hoja oculta de log cual es el ordenador que genera los cambios al entrar.

Gracias por su atención y espero su respuesta.

No pude acceder al link, pero si se trata de utilizar el mismo evento colocá la instrucción aquí en lugar del evento Open.

Como fecha y hora estás colocando en col A, colocá en B lo nuevo (o en el orden que quieras)

Sheets("hoja3").Range("A65000").End(xlUp).Offset(1, 0).Value = Date
& "--" & Time & " en la hoja: " & ActiveSheet.Name

Sheets("Hoja3").Range("A65000").End(xlUp).Offset(0, 1).Value= Serie


El Offset ahora no incrementa hacia abajo sino a derecha para ocupar la col B

IMPORTANTE:

La variable Serie debe ser declarada como Pública al inicio de algún módulo. Quítala del evento Open.

Public Serie As String

Gracias, ya esta solucionado, funciona perfectamente así:

Private Sub Workbook_Open()
Dim Serie As String
Dim FSO As Object
Dim Disco duro As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Disco_duro = FSO.GetDrive("c:")
Serie = Disco_duro.SerialNumber
If Serie <> "-2222222222" And Serie <> "2777726800" Then
MsgBox "ESTE EQUIPO NO ESTÁ AUTORIZADO PARA EL USO DE ESTE PROGRAMA"
Application.Quit

End If
Set Disco_duro = Nothing
Set FSO = Nothing
'Se pone en la hoja de log el equipo que ha abierto el libro.
Sheets("Hoja3").Range("a65000").End(xlUp).Offset(1, 0).Value = " -- equipo= " & Serie
End Sub

Un cordial saludo.

Es otra opción válida... solo que mencionaste la otra rutina...

En este caso no es necesario que declares la variable como pública, dejala donde estaba.

Sdos y no olvides finalizar

Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas