Buenas! como están?, tengo una macro que me pide una contraseña al abrir el libro y si pongo correctamente la contraseña me deja acceder al libro y lo registra en una hoja, con el nombre de usuario de PC y serie de disco duro. hasta aquí todo perfecto pero me gustaría que este libro solo se pueda usar en una sola computadora, al dar la contraseña lo podrían utilizar en N computadoras ya que se seguiría registrando, a lo cual se me ocurrió bloquear todas las demás celdas menos la que tiene el primer registro y en caso de que intenten registrar otra maquina el libro se cierre. la macro es la siguiente :
Dim CerrarFormulario As Boolean
Private Sub UserForm_QueryClose(Cancel As Integer, ModoCerrar As Integer)
'EVITO QUE EL USUARIO DE A LA (X) DEL FORMULARIO PARA CERRARLO Y OBLIGO A QUE INSERTE UNA CONTRASEÑA.
If CerrarFormulario = False Then Cancel = True
End Sub
Private Sub txtPassword_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Buenas! como están?, tengo una macro que me pide una contraseña al abrir el libro y si pongo correctamente la contraseña me deja acceder al libro y lo registra en una hoja, con el nombre de usuario de PC y serie de disco duro. hasta aquí todo perfecto pero me gustaría que este libro solo se pueda usar en una sola computadora, al dar la contraseña lo podrían utilizar en N computadoras ya que se seguiría registrando, a lo cual se me ocurrió bloquear todas las demás celdas menos la que tiene el primer registro y en caso de que intenten registrar otra maquina el libro se cierre. la macro es la siguiente :
Dim CerrarFormulario As Boolean
Private Sub UserForm_QueryClose(Cancel As Integer, ModoCerrar As Integer)
'EVITO QUE EL USUARIO DE A LA (X) DEL FORMULARIO PARA CERRARLO Y OBLIGO A QUE INSERTE UNA CONTRASEÑA.
If CerrarFormulario = False Then Cancel = True
End Sub
Private Sub txtPassword_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim SerialHD As String
Dim UltRegistro As Integer
If KeyCode = 13 Then
With CreateObject("Scripting.FileSystemObject")
SerialHD = Hex(.Drives.Item("C:").SerialNumber)
End With
UltRegistro = Hoja2.Range("B" & Rows.Count).End(xlUp).Row
'EL USUARIO A PULSADO LA TECLA ENTER
If Len(txtPassword) > 0 Then
If txtPassword = "Dr4gonnike01" Then
msg = MsgBox("¿Desea insertar al siguiente Usuario al listado de Autorizados?" & vbCrLf & vbCrLf & "Usuario: " & SerialHD, vbQuestion + vbYesNo, "Autorizaciones")
If msg = vbYes Then
If UltRegistro > 2 Then
Hoja2.Range("B" & UltRegistro + 1) = SerialHD 'SERIAL DEL DISCO DURO
Hoja2.Range("C" & UltRegistro + 1) = Environ("username") 'NOMBRE DE USUARIO
Else
Hoja2.Range("B3") = SerialHD 'SERIAL DEL DISCO DURO
Hoja2.Range("C3") = Environ("username") 'NOMBRE DE USUARIO
End If
CerrarFormulario = True
Unload Me
Else
CerrarFormulario = True
Unload Me 'CIERRO EL FORMULARIO
End If
Else
CerrarFormulario = True
Unload Me 'CIERRO EL FORMULARIO
ThisWorkbook.Close False 'CIERRO EL PROGRAMA SIN GUARDAR LOS CAMBIOS
End If
End If
End If
End Sub
si pudieran ayudarme por favor, estaría muy agradecido con su colaboracion
Libro.zip