Excel. Doble clic para abrir formulario con el contenido de una fila (modificar).

Quisiera si por favor me pueden ayudar. Tengo una tabla con datos estadísticos, y quisiera que al hacer doble clic en una de sus celdas, se cargue en el formulario "Vacunas" con el contenido de la fila. La idea es abrir el formulario para modificar el contenido extenso de la fila en caso de necesitarlo. El rango de las filas comienza en A5 y finaliza AV146 por las dudas.

1 respuesta

Respuesta
2

El siguiente código debe colocarse en el objeto HOJA donde vayas a trabajar.

Ajusta el nombre de los controles a tu caso.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'x Elsamatilde
'control de ubicación
If ActiveCell.Row < 5 Or ActiveCell.Row > 146 Then Exit Sub
filx = ActiveCell.Row
UserForm3.TextBox1 = Range("A" & filx)
UserForm3.TextBox2 = Range("B" & filx)
UserForm3.TextBox2 = Range("C" & filx)
UserForm3.Show
End Sub

Faltaría agregar control de columna:

If activecell.column > ??? then exit sub     'allí el nro de col máxima

Buenas. Gracias por su tiempo Elsa. Le comento que para los cuadro de texto no tuve problemas, se me complico con la casilla de verificación y botones de opción, que en el caso de la primera, si es verdadera coloca un 1 en la tabla, si es falsa, coloca un 0; y en el caso de los botones de opción, discrimino el sexo del paciente (F y M).

Intente con este código para la casilla de verificación:

If Range("I" & filx) = 1 Then vacuna.Value = True
If Range("I" & filx) = 0 Then vacuna.Value = False

Y para los botones de opción:

If Range("H" & filx) = 1 Then
opt_femenino = True
Else
opt_femenino = False
End If
If Range("H" & filx) = 1 Then
opt_masculino = True
Else
opt_masculino = False
End If

Y una consulta más, si me permite, esto me genera una nueva fila a la tabla, como actualizaría esa fila de acuerdo a la apertura de ese registro. Muchas gracias de nuevo y saludos.

Qué bueno que a esta altura ya pueden completar lo que no indicaron o aclararon en la consulta ;)

No entendí la segunda parte de tu comentario, ¿me lo aclaras

Buenas de nuevo. Disculpas, creo que no me hice entender muy bien. No he podido cargar en mi formulario los datos de la tabla que estaban como casilla de verificación y botón de opción, me podría ayudar con eso o abro otra consulta?

Y en el segundo comentario, me refiero a que es mi intención corregir algún dato erróneo abriendo el formulario, no cargar un nuevo registro. Debería utilizar en este caso "filx" para referirme a esa fila nuevamente?

Hola. Pude conseguir leer los datos de la hoja en la casilla de verificación del formulario mediante este código. También la actualización mediante otro formulario. Un millón de gracias...

If Range("I" & filx).Value = 1 Then
Actualizar.Vacuna = True
Else
Actualizar.Vacuna = False
End If

Ahora, como puedo hacer que cargue el sexo del paciente? Tengo en la hoja, una F para el sexo Femenino y M para Masculino. 

If Range("H" & filx) .Value= 1 Then
Actualizar.opt_femenino = True
Else
Actualizar.opt_femenino = False
End If
If Range("H" & filx).Value = 1 Then
Actualizar.opt_masculino = True
Else
Actualizar.opt_masculino = False
End If

No te respondí antes porque ya tenías las instrucciones para las casillas y optionbutton.

Con respecto a letras la consulta sería (ajusta el range si hiciera falta)

If Range("H" & filx) .Value= "F" Then   Actualizar.opt_femenino = True

Si el formulario está bien diseñado se supone que si marcas el option Femenino no se marcará el Masculino... por lo tanto no haría falta consultar si es M. Se entiende que si no es F será M.

Cualquier otra duda por favor deja imagen de tu formulario para poder observar los controles.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas