![](/content/images/user_nophoto_small.png)
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 de boumerang
1
1
![boumerang](http://blob.todoexpertos.com/avatars/sm/boumerang.jpg?v=29)
boumerang, Vba
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
-
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
-
![](/content/images/user_nophoto_small.png)
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!
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!
![](/content/images/user_nophoto_small.png)
No me funciona, (en teoría debiera)... lo peor es que me activa todas las demás macro que tengo.
![boumerang](http://blob.todoexpertos.com/avatars/sm/boumerang.jpg?v=29)
... 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.
-
-
Pega tus Sub's directamente del editor VB, para que pueda analizarlo.
-
![](/content/images/user_nophoto_small.png)
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)", 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.
![boumerang](http://blob.todoexpertos.com/avatars/sm/boumerang.jpg?v=29)
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
-
' 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
-
![](/content/images/user_nophoto_small.png)
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...
![](/content/images/user_nophoto_small.png)
No, ignoro el porque, pero al usar SendKeys "(CAPSLOCK)" me activa la macro cerrar.
Gracias de todas formas, ¿quieres qué puntúe y cierre?
Gracias de todas formas, ¿quieres qué puntúe y cierre?
![](/content/images/user_nophoto_small.png)
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.
![boumerang](http://blob.todoexpertos.com/avatars/sm/boumerang.jpg?v=29)
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
-
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
- Compartir respuesta
- Anónimo
ahora mismo
![](/content/images/user_nophoto_small.png)