Macro para convertir automáticamente el texto en mayúsculas.

24 jun 2020

Macro para convertir automáticamente el texto en mayúsculas.


Con esta macro cualquier texto introducido en un rango de celdas, será automáticamente convertido a mayúsculas.

A continuación, les explicare como realizarlo en una columna.

1. Abrir el editor Visual Basic para Aplicaciones (VBA).

2. Ahora del lado derecho buscamos la hoja donde queremos realizar la acción y damos doble click, a continuación, se abrirá una ventana donde podremos introducir el código de nuestra macro.

Macro para convertir automáticamente el texto en mayúsculas.

En esta ventana...

A) Colocamos el siguiente código "Worksheet_Change" el evento Change va a detectar los cambios realizados en nuestra hoja:

Private Sub Worksheet_Change(ByVal Target As Range)

B) Declaramos nuestra variable de tipo rango.

Dim rng1 As Range

C) Guardamos en una variable la ubicación de la celda activa con Target.Address:

Mycell = Target.Address

D) iniciamos nuestro rango donde queremos realizar el cambio y con el método Intersect vamos a relacionar la celdas que cambiaron con nuestro rango establecido.
Set rng1 = Intersect(Target, Range("A1:A100")) 'rango seleccionado

E) Evaluamos si hubo un cambio en las celdas de nuestro rango establecido. sí hay un cambio, pero no es nuestro rango seleccionado va a terminar la rutina de nuestra macro.

If rng1 Is Nothing Then Exit Sub

F) Apagamos los eventos de nuestra hoja para su correcto funcionamiento de nuestra macro.

Application.EnableEvents = False

G) Nuestro código que va a cambiar todo a mayúsculas.

Range(Mycell).Value = UCase(Range(Mycell).Value)

H) Encendemos los eventos de nuestra hoja.

Application.EnableEvents = True

I) cerramos nuestra macro.

End Sub

4. Al final nuestra macro va a quedar de la siguiente manera:


Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng1 As Range
Mycell = Target.Address

Set rng1 = Intersect(Target, Range("A1:A100")) ' tu rango que va a validar
If rng1 Is Nothing Then Exit Sub
Application.EnableEvents = False
Range(Mycell).Value = UCase(Range(Mycell).Value)

Application.EnableEvents = True

End Sub

0 comments :

Publicar un comentario