Boton en excel con password

Tengo un botón en excel el cual reinicia un cronometro, deseo que al darle click primero me pida password como le hago, que código le pongo, el botón se llama reiniciar.

1 respuesta

Respuesta
2

Prueba lo siguiente:

Sub reiniciar()
  Dim pwd As Variant
  pwd = InputBox("Captura el password", "INICIAR")
  If pwd = "" Then Exit Sub
  If pwd <> "abc" Then
    MsgBox "Password incorrecto"
    Exit Sub
  End If
  '
  'continuarcon tu código
  '
End Sub

Como quedaría con toda mi codificación si es la sig

Private Sub CommandButton1_Click()
  Dim StartTime, FinishTime, TotalTime, PauseTime
  StopIt = False
  ResetIt = False
  If Range("K81") = 0 Then
    StartTime = Timer
    PauseTime = 0
    LastTime = 0
  Else
    StartTime = 0
    PauseTime = Timer
  End If
StartIt:
  DoEvents
  If StopIt = True Then
    LastTime = TotalTime
    Exit Sub
  Else
    '
    'Desproteger la hoja
    ActiveSheet.Unprotect "abc"
    '
    FinishTime = Timer
    TotalTime = FinishTime - StartTime + LastTime - PauseTime
    TTime = TotalTime * 100
    HM = TTime Mod 100
    TTime = TTime \ 100
    hh = TTime \ 3600
    TTime = TTime Mod 3600
    MM = TTime \ 60
    SS = TTime Mod 60
    Range("K81").Value = Format(hh, "00") & ":" & Format(MM, "00") & ":" & Format(SS, "00") & "." & Format(HM, "00")
    If ResetIt = True Then
      Range("K81") = Format(0, "00") & ":" & Format(0, "00") & ":" & Format(0, "00") & "." & Format(0, "00")
      LastTime = 0
      PauseTime = 0
      End
    End If
    '
    'Proteger la hoja
    ActiveSheet.Protect "abc"
    '
    GoTo StartIt
  End If
End Sub
'
Private Sub CommandButton2_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  StopIt = True
End Sub
'
Private Sub CommandButton3_Click()
  '
  'Desproteger la hoja
  ActiveSheet.Unprotect "abc"
  '
  Range("K81").Value = Format(0, "00") & ":" & Format(0, "00") & ":" & Format(0, "00") & "." & Format(0, "00")
  LastTime = 0
  ResetIt = True
  '
  'Proteger la hoja
  ActiveSheet. Protect "abc"
  '
End Sub

Prueba así:

Private Sub CommandButton1_Click()
  Dim StartTime, FinishTime, TotalTime, PauseTime
  Dim pwd As Variant
  pwd = InputBox("Captura el password", "INICIAR")
  If pwd = "" Then Exit Sub
  If pwd <> "abc" Then
    MsgBox "Password incorrecto"
    Exit Sub
  End If
  StopIt = False
  ResetIt = False
  If Range("K81") = 0 Then
    StartTime = Timer
    PauseTime = 0
    LastTime = 0
  Else
    StartTime = 0
    PauseTime = Timer
  End If
StartIt:
  DoEvents
  If StopIt = True Then
    LastTime = TotalTime
    Exit Sub
  Else
    '
    'Desproteger la hoja
    ActiveSheet.Unprotect pwd
    '
    FinishTime = Timer
    TotalTime = FinishTime - StartTime + LastTime - PauseTime
    TTime = TotalTime * 100
    HM = TTime Mod 100
    TTime = TTime \ 100
    hh = TTime \ 3600
    TTime = TTime Mod 3600
    MM = TTime \ 60
    SS = TTime Mod 60
    Range("K81").Value = Format(hh, "00") & ":" & Format(MM, "00") & ":" & Format(SS, "00") & "." & Format(HM, "00")
    If ResetIt = True Then
      Range("K81") = Format(0, "00") & ":" & Format(0, "00") & ":" & Format(0, "00") & "." & Format(0, "00")
      LastTime = 0
      PauseTime = 0
      End
    End If
    '
    'Proteger la hoja
    ActiveSheet.Protect pwd
    '
    GoTo StartIt
  End If
End Sub
'
Private Sub CommandButton2_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  StopIt = True
End Sub
'
Private Sub CommandButton3_Click()
  '
  'Desproteger la hoja
  Dim pwd As Variant
  pwd = InputBox("Captura el password", "INICIAR")
  If pwd = "" Then Exit Sub
  If pwd <> "abc" Then
    MsgBox "Password incorrecto"
    Exit Sub
  End If
  ActiveSheet.Unprotect pwd
  '
  Range("K81").Value = Format(0, "00") & ":" & Format(0, "00") & ":" & Format(0, "00") & "." & Format(0, "00")
  LastTime = 0
  ResetIt = True
  '
  'Proteger la hoja
  ActiveSheet. Protect pwd
  '
End Sub

Al final de mi respuesta hay un botón para valorar, Excelente, si te funciona la solución.

Si tienes dudas, puedes regresar a comentar.

¡Gracias! 

fue de mucha ayuda

Funcionaba y ahora m sale un recuadro que dice error 1004 y me pone contraseña incorrecta compruebe que la tecla bloq mayus esta desactivada y que escribió bien la contraseñas y solo quiero que la contraseña sea para el botón 3

Pero el botón1 también escribe en la hoja, entonces debes desproteger la hoja.

No sé cómo tienes o quieres el botón1, pero prueba lo siguiente:

Private Sub CommandButton1_Click()
  Dim StartTime, FinishTime, TotalTime, PauseTime
  Dim pwd As Variant
  pwd =  "abc" 
  StopIt = False
  ResetIt = False
  If Range("K81") = 0 Then
    StartTime = Timer
    PauseTime = 0
    LastTime = 0
  Else
    StartTime = 0
    PauseTime = Timer
  End If
StartIt:
  DoEvents
  If StopIt = True Then
    LastTime = TotalTime
    Exit Sub
  Else
    '
    'Desproteger la hoja
    ActiveSheet.Unprotect pwd
    '
    FinishTime = Timer
    TotalTime = FinishTime - StartTime + LastTime - PauseTime
    TTime = TotalTime * 100
    HM = TTime Mod 100
    TTime = TTime \ 100
    hh = TTime \ 3600
    TTime = TTime Mod 3600
    MM = TTime \ 60
    SS = TTime Mod 60
    Range("K81").Value = Format(hh, "00") & ":" & Format(MM, "00") & ":" & Format(SS, "00") & "." & Format(HM, "00")
    If ResetIt = True Then
      Range("K81") = Format(0, "00") & ":" & Format(0, "00") & ":" & Format(0, "00") & "." & Format(0, "00")
      LastTime = 0
      PauseTime = 0
      End
    End If
    '
    'Proteger la hoja
    ActiveSheet.Protect pwd
    '
    GoTo StartIt
  End If
End Sub

Tengo 3 botones el primero es de inicio el segundo detener y el tercero reiniciar solo quiero que el botón reiniciar utilice una contraseña 

Pero como te comenté, en el botón1 estás escribiendo en la hoja, entonces es necesario que desprotejas la hoja.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas