Activar y/o desactivar "bloq mayus" con una macro

Necesito activar y/o desactivar la tecla "bloq mayus" con una macro en excel... ¿me pueden ayudar?.

1 Respuesta

Respuesta
1
SendKeys "{CAPSLOCK}"
Sub Mayusculas()
'Mayus
'Acceso directo: Ctrl + Shift + M
   dato = ActiveCell.Value
   If VarType(dato) = 8 Then
      ActiveCell.Value = UCase(dato)
      SendKeys "{CAPSLOCK}" 'Se activa Caps Lock
   End If
   ActiveCell.Offset(0, 1).Select
End Sub 
 -
Sub Minusculas()
' Minus
' Acceso directo: CTRL + M
   dato = ActiveCell.Value
   If VarType(dato) = 8 Then
      ActiveCell.Value = LCase(dato)
      SendKeys "{CAPSLOCK}" 'Se desactiva Caps Lock
   End If
   ActiveCell.Offset(0, 1).Select
End Sub 
-
Tengo esta macro y me gustaría que además de poner el contenido de la celda en mayúsculas me activara el Bloq Mayus.
Sub Mayusculas()
 'Mayus
 'Acceso directo: Ctrl + Shift + M
 dato = ActiveCell.Value
 If VarType(dato) = 8 Then
  ActiveCell.Value = UCase(dato)
 End If
 ActiveCell.Offset(0, 1).Select
End Sub
Y también tengo esta macro y me gustaría que además de poner el contenido de la celda en minúsculas me desactivara el Bloq Mayus.
Sub Minusculas()
' Minus
' Acceso directo: CTRL + M
 dato = ActiveCell.Value
 If VarType(dato) = 8 Then
  ActiveCell.Value = LCase(dato)
 End If
 ActiveCell.Offset(0, 1).Select
End Sub
Gracias!
No me funciona, (en teoría debiera)... lo peor es que me activa todas las demás macro que tengo.
... no me das detalles para juzgar. En este caso, solamente puedo decirte: a mí si me funciona.
-
Pega tus Sub's directamente del editor VB, para que pueda analizarlo.
-
Las tengo en módulos separados, estas son las macros...
Sub Minusculas()
' Minus
' Acceso directo: CTRL + M
 dato = ActiveCell.Value
 If VarType(dato) = 8 Then
  ActiveCell.Value = LCase(dato)
 End If
 ActiveCell.Offset(0, 1).Select
 SendKeys "(CAPSLOCK)", True
End Sub
Sub Mayusculas()
 'Mayus
 'Acceso directo: Ctrl + Shift + M
 dato = ActiveCell.Value
 If VarType(dato) = 8 Then
  ActiveCell.Value = UCase(dato)
 End If
 ActiveCell.Offset(0, 1).Select
 SendKeys "(CAPSLOCK)", True
End Sub
Sub Pagos()
' Pagos
' Acceso directo: Ctrl+Mayús+P
    Columns("C:F").Select
    Selection.EntireColumn.Hidden = True
    Columns("I:K").Select
    Selection.EntireColumn.Hidden = True
    Columns("M:N").Select
    Selection.EntireColumn.Hidden = True
    Columns("P:P").Select
    Selection.EntireColumn.Hidden = True
    Columns("T:AH").Select
    Selection.EntireColumn.Hidden = True
    Columns("R").Select
    Selection.EntireColumn.Hidden = True
End Sub
Sub Cierre()
' Cierre
' Acceso directo: Ctrl+Mayús+C
    Columns("A:A").Select
    Selection.EntireColumn.Hidden = True
    Columns("C:C").Select
    Selection.EntireColumn.Hidden = True
    Columns("E:F").Select
    Selection.EntireColumn.Hidden = True
    Columns("S:AD").Select
    Selection.EntireColumn.Hidden = True
    Columns("AJ:AM").Select
    Selection.EntireColumn.Hidden = True
    Selection.AutoFilter Field:=2, Criteria1:=">=01-01-2010", Operator:=xlAnd
    Selection.AutoFilter Field:=13, Criteria1:="=Preaprobado", Operator:=xlOr, Criteria2:="=Contraoferta"
    Selection.AutoFilter Field:=17, Criteria1:="<>Rechazo Oferta", Operator:=xlAnd, Criteria2:="<>Carpeta Armada"
    Selection.AutoFilter Field:=35, Criteria1:="="
    Application.Goto Reference:="R1C1"
    Range("B1").Select
    Application.Goto Reference:="R1C2"
    Selection.End(xlDown).Select
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:=True
    ActiveWorkbook.Save
    ActiveWindow.Close
End Sub
Sub Movilizar()
 Dim Ctrl As Office.CommandBarControl
 For Each Ctrl In Application.CommandBars.FindControls(ID:=443)
     Ctrl.Enabled = True
 Next Ctrl
End Sub
Esta está al iniciar la planilla...
Private Sub Workbook_Open()
    Dim Ctrl As Office.CommandBarControl
    For Each Ctrl In Application.CommandBars.FindControls(ID:=443)
        Ctrl.Enabled = False
    Next Ctrl
End Sub
Probé tu método en una hoja nueva asignando la macro a una imagen y no pasaba nada, en la celda solo cambiaba de mayúsculas a minúsculas o al revés.
Gracias.
Sub Minusculas()
' Minus
' Acceso directo: CTRL + M
   dato = ActiveCell.Value
   If VarType(dato) = 8 Then
      ActiveCell.Value = LCase(dato)
   End If
   ActiveCell.Offset(0, 1).Select
   SendKeys "(CAPSLOCK)", True
End Sub
-
Sub Mayusculas()
'Mayus
'Acceso directo: Ctrl + Shift + M
   dato = ActiveCell.Value
   If VarType(dato) = 8 Then
      ActiveCell.Value = UCase(dato)
   End If
   ActiveCell.Offset(0, 1).Select
   SendKeys "(CAPSLOCK)", False
End Sub
-
Checa la diferencia. Una linea es TRUE y la otra es FALSE
-
El true y el false es para que haga o no una pausa, al dejarlo en true me inhabilita toda acción hasta que recorre la macro completa, lo malo es que me activa otra macro, la de cierre...
Te sirvió.
No, ignoro el porque, pero al usar SendKeys "(CAPSLOCK)" me activa la macro cerrar.
Gracias de todas formas, ¿quieres qué puntúe y cierre?
Ah! Ya vi el detalle:
No son paréntesis, son LLAVES las que encierran a CAPSLOCK.
Hay un detalle del que no me había percatado, al correr la macro (con llaves) la luz del bloq num parpadea, es muy rapido, pero se nota su titileo, y en la barra inferior de excel aparece MAYUS activo por 1 segundo, luego desaparece.
OK. En mi PC funciona, así como está este.
-
Saludos
-
Sub Minusculas()
' Minus
' Acceso directo: CTRL + M
 dato = ActiveCell.Value
  If VarType(dato) = 8 Then
   ActiveCell.Value = LCase(dato)
  End If
 ActiveCell.Offset(0, 1).Select
 SendKeys "{CAPSLOCK}", True
End Sub
Sub Mayusculas()
'Mayus
'Acceso directo: Ctrl + Shift + M
 dato = ActiveCell.Value
 If VarType(dato) = 8 Then
  ActiveCell.Value = UCase(dato)
 End If
 ActiveCell.Offset(0, 1).Select
 SendKeys "{CAPSLOCK}", False
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas