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.
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:
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é
09/05/2018 a las 7:21 pm
Hola, cómo creaste el formulario? O dónde lo seleccuonaste?