Modificar registros dese vba a mi hoja1 de excel

A ver si alguien me puede ayudar a resolver este problema que tengo soy bastante nova.

Tengo un UserForm para poder modificar cualquier línea de mi Hoja1, la modifica, pero cuando la ha modificado me elimina la fórmula que tengo en la columna E y I (representa por ejemplo un valor en €), respetando el valor del número, con lo cual no es correcto ya que cada referencia tiene otro valor numérico.

Os adjunto el código y una imagen

'Actualizar el registro

Private Sub CommandButton1_Click()

Sheets("hoja1").Select

For i = 1 To 15

    ActiveCell.Offset(0, i - 1).Value = Me.Controls("TextBox" & i).Value

Next i

Unload Me

End Sub

'

'Cerrar formulario

Private Sub CommandButton2_Click()

Unload Me

End Sub

'

'Llenar los cuadro de texto con los datos del registro elegido

Private Sub UserForm_Initialize()

Sheets("hoja1").Select

For i = 1 To 15

    Me.Controls("TextBox" & i).Value = ActiveCell.Offset(0, i - 1).Value

Next i

End Sub

1 Respuesta

Respuesta
2

Está bien que muestres en los controles los valores que se presentan en esa fila (allí se te mostrará el resultado de la fórmula)... pero no debes pasar ese contenido a la hoja para no perder la fórmula.

Dejo un ejemplo:

For i = 1 To 15
    'se omite la col B
if i <> 2 then
    ActiveCell.Offset(0, i - 1).Value = Me.Controls("TextBox" & i).Value
End if
Next i

Hola Elsa

Perfecto, pero tengo varias columnas por ejemplo  E, I, L, y la O como de debería poner el código

 'se omite la col B
if i <> 2 the

Gracias por la atención.

Un saludo

La variable i no indica la columna sino el nro del Textbox que alimenta a cada columna.

Podrías evaluar cada control, suponiendo que se llamen TextBox2, Textbox7 y Textbox15 con:

if i <> 2 and i <> 7 and i <> 15 then   

O mejor, controlar si la celda tiene fórmula y en ese caso no se pasa el valor del control:

For i = 1 To 15
'se omite la col que tiene fórmula
    If ActiveCell.Offset(0, i - 1).HasFormula = False Then
       Me.Controls("TextBox" & i).Value
    End If
Next i

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas