Si está desarrollando una hoja de trabajo para que otros la utilicen, es posible que desee que siempre ingresen la información en mayúsculas. Excel proporciona una función de hoja de trabajo que le permite convertir información a mayúsculas, pero no se aplica ya que las personas realmente ingresan información. Por ejemplo, si alguien ingresa información en la celda B6, entonces la función de la hoja de trabajo no se puede usar para convertir la información en B6 a mayúsculas.

En su lugar, debe utilizar una macro para realizar los cambios por usted. Al programar en VBA, puede obligar a Excel a ejecutar una macro en particular cada vez que se cambia algo en una celda de la hoja de trabajo. La siguiente macro se puede utilizar para convertir todas las entradas de la hoja de trabajo a mayúsculas:

Private Sub Worksheet_Change(ByVal Target As Range)

With Target     If Not .HasFormula Then         .Value = UCase(.Value)

End If End With End Sub

Sin embargo, para que la macro funcione, debe ingresarse en un lugar específico.

Siga estos pasos para colocar la macro:

  1. Muestre el Editor de VBA presionando Alt + F11.

  2. En la ventana Proyecto, en el lado izquierdo del Editor, haga doble clic en el nombre de la hoja de trabajo que está utilizando. (Es posible que primero deba abrir la carpeta VBAProject y luego abrir la carpeta Microsoft Excel Objects debajo de ella).

  3. En la ventana de código de la hoja de trabajo, pegue la macro anterior.

  4. Cierre el editor de VBA.

Ahora cualquier cosa (excepto fórmulas) que se ingrese en cualquier celda de la hoja de trabajo se convertirá automáticamente a mayúsculas. Si no desea que todo se convierta, sino solo celdas en un área particular de la hoja de trabajo, puede modificar la macro ligeramente:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not (Application.Intersect(Target, Range("A1:B10")) Is Nothing) Then     With Target         If Not .HasFormula Then             .Value = UCase(.Value)

End If     End With End If End Sub

En este ejemplo en particular, solo se convertirá el texto ingresado en las celdas A1: B10; todo lo demás se dejará como se ingresó. Si necesita convertir un rango diferente, especifique ese rango en la segunda línea de la macro.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (2568) se aplica a Microsoft Excel 97, 2000, 2002 y 2003. Puede encontrar una versión de este consejo para la interfaz de cinta de Excel (Excel 2007 y posterior) aquí:

enlace: / excelribbon-Forcing_Input_to_Uppercase [Forzar entrada a mayúsculas].