Modificar la ruta de imagen si se ha seleccionado una nueva imagen o dejar la actual si se mantiene la misma en un formulario

Tengo un formulario de registro donde selecciono una imagen y al guardar los datos en una de las celdas aparece la ruta de la imagen. Mi problema es al modificar datos de una búsqueda, desaparece la ruta de la imagen o si modifico el código y dejo que únicamente utilice el dato correspondiente a la ruta no me modifica dicho dato si selecciono una nueva imagen. El código que tengo para el botón modificar es el siguiente:

Private Sub CommandButton5_Click()
'trabajamos el botón de modificar, los datos del ejercicio, sobre la misma fila
Dim fila As Integer
Dim Ffinal As Integer
Dim i As String
For fila = 4 To 1000
    If Sheets("BaseDatosEjercicios").Cells(fila, 7) = Empty Then
        Ffinal = fila - 1 'restamos 1 porque queremos modificar, no añadir
Exit For
    End If
Next
For fila = 4 To Ffinal
    If cmbBuscador.Text = Sheets("BaseDatosEjercicios").Cells(fila, 7) Then
        Cells(fila, 1) = CódigoBox.Text
        Cells(fila, 2) = cmbTipo.Text
        Cells(fila, 3) = cmbRegión.Text
        Cells(fila, 4) = cmbFoco.Text
        Cells(fila, 5) = cmbMaterial1.Text
        Cells(fila, 6) = cmbMaterial2.Text
        Cells(fila, 7) = NombreBox.Text
        Cells(fila, 8) = Nombre2Box.Text
        Cells(fila, 9) = cmbNivel.Text
        Cells(fila, 10) = DescripciónBox.Text
        Cells(fila, 11) = NotasBox.Text
        Cells(fila, 12) = ContraindicacionesBox.Text
        Cells(fila, 13) = Musculatura1Box.Text
        Cells(fila, 14) = Musculatura2Box.Text
        Cells(fila, 15) = cmbDivisión.Text
        Cells(fila, 16) = cmbPlano.Text
        Cells(fila, 17) = PosturalBox.Text
        Cells(fila, 18) = SeriesBox.Text
        Cells(fila, 19) = RepBox.Text
        Cells(fila, 20) = TUTBox.Text
        Cells(fila, 21) = PausaBox.Text
        Cells(fila, 22) = cmbIntensidad.Text
        Cells(fila, 23) = cmbMáximos.Text
        Cells(fila, 24) = RutaImagen
        Cells(fila, 24) = txtNombreImagen
MsgBox "El ejercicio se ha modificado con éxito", vbInformation + vbOKOnly, "MODIFICAR EJERCICIO"
txtImagen.Picture = LoadPicture("")
Call ComboBoxEjercicio
Call ordenarBDejercicio
Call nuevocódigo
CommandButton2.Enabled = True 'Activa el botón de guardar
Exit For
    End If
Next
End Sub

Lo que yo quiero es colocar un msgBox que, al pulsar el botón de modificar, me pregunte si he modificado la imagen del ejercicio, y:

-En caso afirmativo aplique la de: Cells(fila, 24) = RutaImagen '(pasa a la celda una nueva ruta de imagen)
-En caso negativo aplique: Cells(fila, 24) = txtNombreImagen '(mantiene la misma ruta)

Nota: En la fila, 24 es la celda donde se guarda la ruta de imagen, que puede ser la misma si no se ha modificado o diferente si he seleccionado una nueva imagen (

He probado con If... Pero no lo he conseguido.

1 respuesta

Respuesta
2

Cambia estas líneas:

        Cells(fila, 24) = RutaImagen
        Cells(fila, 24) = txtNombreImagen

Por estas:

        Dim res
        res = MsgBox("Ha modificado la imagen del ejercicio", vbQuestion + vbYesNo, "IMAGEN")
        If res = vbYes Then
            Cells(fila, 24) = RutaImagen
        Else
            Cells(fila, 24) = txtNombreImagen
        End If

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

¡Gracias! 

Había probado con el if y else pero sin colocar previamente "dim ..." !! ¡cuanto que aprender! 

Funciona de maravilla por supuesto.

Muchas gracias una vez más

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas