Macro convertir a título las celdas seleccionadas

Con esta macro convertir a título las celdas seleccionadas podremos fácilmente implementar en nuestro Excel un comando que muchas veces echamos en falta.

Pretende ser sólo un ejemplo (sencillo y mejorable) de como llamar desde una macro a una función propia a la que tras facilitarle de dato con que debe trabajar nos devuelve el resultado convenientemente procesado.

Llamaremos a la macro Titulo(), y para tenerla disponible para todos los libros que editemos, deberemos almacenarla en el libro personal.xlsb.

Mostrar el libro de macros Personal.xlsb

Para editarlo deberemos mostrar previamente este libro desde la ficha Vista > grupo Ventana > Mostrar.

No debemos hacer modificaciones en este libro, sólo en su código VBA, por tanto, tan pronto como se muestre, debemos reducir la ventana a un icono en la barra de tareas.

Macro convertir a título de Excel. Reducir a icono el libro Personal.xlsb

Activamos el editor IDE desde la ficha Programador > grupo Código > Visual Basic.

Macro convertir a título de Excel. Activar el editor IDE

Añadir un módulo

Para mantener convenientemente ordenado nuestro código, podemos agregar un nuevo módulo en donde almacenar las macros que trabajan con textos, haciendo clic derecho sobre la carpeta Módulos del proyecto PERSONAL.XLSB, y seleccionar la opción Insertar > Módulo.

Macro convertir a título de Excel. Insertar un nuevo módulo

El módulo se agregará con un nombre genérico. Para cambiar su nombre, desde el panel Propiedades, y teniendo seleccionado el módulo, modificamos su propiedad Name. Llamamos a este módulo Textos.

Macro convertir a título de Excel. Renombrar el nuevo módulo

Si no tenemos el panel Propiedades a la vista, podemos mostrarlo fácilmente pulsando F9, o desde el menú Ver > Ventana propiedades.

Tras crear el módulo, o si ya lo habías creado en otra ocasión, haciendo un doble clic sobre el nombre del módulo en el explorador de proyectos, se mostrará en el área de edición del IDE.

El código de la macro convertir a título

Tecleamos o copiamos y pegamos el siguiente código:

Sub Titulo()
' Pone la primera letra de cada palabra en mayúsculas
' tras punto, admiración e interrogación cerradas,
' en el texto de las celdas seleccionadas

On Local Error GoTo Error_Titulo

Dim celda As Range, marcas As String

marcas = ".!?"

For Each celda In Application.Selection.Cells
    celda.Value = auxiliarTitulo(celda.Value, marcas)
Next

Exit Sub

Error_Titulo:
' si se produce un error muestra el mensaje
MsgBox "Se produjo un error en la macro Titulo" & vbCrLf & _
       "Error número: " & Err.Number & vbCrLf & _
       "Descripción: " & Err.Description, vbCritical, "Libro Personal de macros"

End Sub


Private Function auxiliarTitulo(texto As String, marcas As String)
    Dim contador As Long, anteriorEsMarca As Boolean, caracter As String, resultado As String
    For contador = 1 To Len(texto)
        caracter = Mid(texto, contador, 1)
        If caracter = " " Then
        ElseIf InStr(marcas, caracter) > 0 Then
            anteriorEsMarca = True
        Else
            If anteriorEsMarca Or contador = 1 Then
                caracter = UCase(caracter)
                anteriorEsMarca = False
            Else
                caracter = LCase(caracter)
            End If
        End If
        resultado = resultado + caracter
    Next
    auxiliarTitulo = resultado
End Function

Guardamos y cerramos el editor IDE

Tan sólo nos queda ocultar de nuevo el libro de macros Personal. Para ello hacemos clic sobre su icono en la barra de tareas de Windows, y tras mostrarse como la ventana activa, seleccionamos desde el menú Vista > grupo Ventana > Ocultar.

Ahora podremos asignar la macro convertir a título a un botón en la barra de herramientas de acceso rápido, o a un nuevo botón en el lugar que prefieras de la cinta de opciones, y dispondrás de un comando muy útil y que Excel, en ninguna de sus versiones hasta el día de hoy, no incorpora.

También puede interesarte: