Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Macros para añadir texto a la izquierda o derecha en un rango

| 1 comentario

Muchas veces cuando trabajamos en Excel se desea agregar palabras al final o al comienzo de un texto en una celda. Sin embargo, hacerlo de forma manual tomaría mucho tiempo especialmente si el rango de celdas a los cuales se les desea realizar esa modificación es muy grande. Por ello, en esta oportunidad desarrollaremos un macros usando fundamentalmente la estructura For each para realizar dicha acción.

Lo primero que haremos es crear un botón para que al apretarlo podamos acceder a un formulario que permita agregar texto a una celda numérica.

Imagen1

Luego creamos un formulario que nos permita poder ingresar el rango de celdas al cual se le desea agregar el texto, si se desea agregarlo después o antes de lo que aparece en la celda y que palabra o frase se desea agregar. A continuación se presenta el formulario:

Imagen2

Luego, ingresamos la sintaxis para poder modificar las celdas :

Private Sub CommandButton1_Click()

Private Sub CommandButton1_Click()
If OptionButton1.Value = True Then

'Paso1: Declarar sus variables
Dim MyRange1 As Range
Dim MyCell1 As Range

'Paso2: Lo que hacemos aquí es agregar la opcion de poder guarda la base de datos original antes de modificarla
Select Case MsgBox("¿Desea usted guardar la base de datos antes de modificarla?", vbYesNoCancel)
Case Is = vbYes
ThisWorkbook.Save
Case Is = vbCancel
Exit Sub
End Select

'Paso 3: Definimos el rango objetivo
Set MyRange1 = Range(TextBox1)
'Paso 4: Empieza el comando en el rango.
For Each MyCell1 In MyRange1
'Paso 5: Aseguramos que la celda no este vacía
If Not IsEmpty(MyCell1) Then

MyCell1 = MyCell1 & " " & TextBox2.Text
End If
'Paso 6: Pasamos a la siguiente celda del rango
Next MyCell1
End If

If OptionButton2.Value = True Then
'Paso1:Declarar sus variables
Dim MyRange As Range
Dim MyCell As Range

'Paso2: Lo que hacemos aquí es agregar la opcion de poder guarda la base de datos original antes de modificarla
Select Case MsgBox("¿Desea usted guardar la base de datos antes de modificarla?", vbYesNoCancel)
Case Is = vbYes
ThisWorkbook.Save
Case Is = vbCancel
Exit Sub
End Select

'Paso 3: Definimos el rango objetivo
Set MyRange = Range(TextBox1)
'Paso 4: Empieza el comando en el rango.
For Each MyCell In MyRange
'Paso 5: Aseguramos que la celda no este vacía
If Not IsEmpty(MyCell) Then

MyCell = TextBox2.Text & " " & MyCell
End If
'Paso 6: Pasar a la siguiente celda del rango
Next MyCell
End If

End Sub

 

Ejemplo:

En el siguiente caso tenemos una hoja con nombres y edades. Si queremos añadir edades a los nombres ponemos el rango B2:B7, que este antes del número y como palabra años. Si deseamos podemos guardar la base que tenemos antes que sea modificada o no . A continuación se agrega el archivo que  contiene todo el macros para que pueda ser revisado.

Ejemplo  añadir texto en un rango

Por: Carlos André

Un comentario

  1. Hola, cómo creaste el formulario? O dónde lo seleccuonaste?

Deja una respuesta

Los campos requeridos estan marcados con *.