Reemplazar texto con userform

Hola, tengo un userform que tiene 2 textbox, en el primero se coloca un dato que ya existe en una hoja y columna establecida, y en el textbox2 se indica el dato por el cual se quiere reemplazar el textbox1; la macro es la siguiente:

Sub CambiarValor2()
If TextBox1 = "" Then
MsgBox "Debe ingresar el dato origen"
Exit Sub
End If
If TextBox2 = "" Then
MsgBox "Debe ingresar el nuevo dato"
Exit Sub
End If
Worksheets("hoja1").Select
Columns("A:A").Select
Selection.Replace What:=CStr(TextBox1), Replacement:=CStr(TextBox2), LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("A1").Select
Unload Me
End Sub
Sub buscaryreemplazar()
UserForm2.Show
End Sub
Private Sub CmdOK_Click()
Call CambiarValor2
End Sub

El problema que tengo es que el dato que coloco en el textbox2, al reemplazarlo en la hoja me lo deja como numero, por ejemplo si coloco 001, al copiar el dato a la hoja me lo reemplaza por 1.

Cómo hago para que el dato que me reemplace me quede en formato texto? (ejemplo 001).

1 respuesta

Respuesta
1

Los textbox guardan la información como 'texto', es decir que no necesitas colocarle ninguna función de conversión a la hora de enviar su contenido a la hoja.

Quitale el CStr a los 2 textbox en la instrucción de reemplazo.

PD) Más sobre funciones de conversión en mi manual de Programación VBA.

Quedé en las mismas, quito los CStr, la donde voy a copiar el dato tiene formato de texto, pero sin embargo al copiar el dato que en el textbox2 dice "001" en la hoja destino me lo copia como 1.

¿Y seguro que al Textbox no lo has convertido en ninguna otra rutina, por ej en el evento Change o Exit...? ¿Con qué versión Excel estás trabajando?

Estoy trabajando con Office 2010, y no lo he convertido en ninguna rutina, de hecho si hago la misma operación con Control + B, y selecciono la pestaña "Reemplazar", el Excel me hace lo mismo, no me tiene en cuenta los ceros en la izquierda.

La celda, si va a tener números con 0 a la izquierda, debe ser ingresada con tilde delante (y entonces será considerada como texto) .

Para que siga siendo número pero con todos los 0, debes darle formato personalizado y en el campo escribir la cantidad de 0 que quieras se te muestre.

Si dejas en ese campo 000 entonces el nro 3 se verá como 003.

Espero esto resuelva tu inquietud, sino enviame tu hoja con el formulario que tiene los textbox. Podes copiar mi correo desde mi sitio que dejo al pie.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas