Modificar datos de un useform sin borrar contenido previo

A ver si me explico. Primero no tengo ni idea de VBA y tengo un problema, he creado un useform con un campo texto que al rellenar y darle al botón de guardado me muestra el contenido en una celda de excel, el problema viene cuando quiero modificar algún dato de ese contenido que puse anteriormente, ya que al volver a dar sobre el botón del formulario este me aparece vació, como si fuera nuevo.

No se si me he explicado bien pero si podéis darme alguna ayuda os lo agradezco.

El codigo que uso es este:

Private Sub CommandButton1_Click()
Sheets("Hoja1").Select

ActiveSheet.Unprotect ("cvtransparencia")
Dim Formacion As String
Formacion = TextBox1.Value

Cells(23, 3) = TextBox1
Sheets("Hoja1").Select

ActiveSheet.Protect ("cvtransparencia")
End

End Sub

1 Respuesta

Respuesta
1

A continuación te explico brevemente, el funcionamiento de un textbox en un formulario.

Los valores que capturas en un textbox se almacenan en la memoria de la computadora, cuando cierras el formulario la memoria se limpia y entonces ya no tienes esos valores almacenados.

Por eso los datos que están en el textbox los pasas a una celda.

Private Sub CommandButton1_Click()
    Sheets("Hoja1").Select
    ActiveSheet.Unprotect ("cvtransparencia")
    Cells(23, 3) = TextBox1
    ActiveSheet.Protect ("cvtransparencia")
End Sub

En VBA de excel no es necesario declarar las variables, todas por defecto se declaran como tipo variant.

Con el código anterior es suficiente para pasar lo que tienes en el textbox1 a la celda "C23".

Ahora, si quieres que aparezca en el textbox1, lo que tienes en la celda "C23", se lo tienes que indicar. Puede ser de la así, agrega el siguiente código a tu formulario

Private Sub UserForm_Activate()
    Sheets("Hoja1").Select
    TextBox1 = Cells(23, 3)
End Sub

Con lo anterior le estamos indicando que seleccione la hoja1, en este caso, como no vamos a modificar la hoja no es necesario desproteger la hoja. En seguida le estamos diciendo que ponga en el textbox1 el valor de la celda "C23"

Cuando abras tu formulario en el textbox1 te aparecerá lo que tienes en "C23", puedes cambiar el dato, presionar el botón y la celda se actualizará.


Prueba lo anterior y dime si con esto resolví tu duda.

La pregunta no admite más respuestas

Más respuestas relacionadas