Como consultar datos de una hoja de excel a un formulario usando un combobox y guardar cambios

He creado un formulario principal en una hoja de excel, en el aparecen dos botones uno para dar de alta auditorias y el otro para realizar consultas a los registros que he dado alta así como modificaciones.

En lo que respecta al alta no tengo problema alguno. En lo que respecta a la consulta, lo hago a través de un combobox al cual se carga con información usando un botón de comando

heets("auditorias").Select
Dim fila As Long 'declaramos la variable fila como entero largo
fila = 3 'La fila al iniciar vale 3, para hacer referencia a la fila 3
While Cells(fila, 4) <> "" 'Mientras la celda de la fila 3 y columna 4 (d3) no este vacia
combo_aud.AddItem Cells(fila, 4) 'agrega el elemento de la fila 3 y columna 4 d3
fila = fila + 1 'la fila incrementa en 1
Wend
cmd_cargar.Enabled = False

. Y al seleccionar el registro deseado en el combobox, la información se despliega en diferentes combobox, textbox, DTPicker.

Private Sub combo_aud_Change()
Dim num_auditoria As String
Dim idBusca As String
Dim fila As Integer
Application.ScreenUpdating = False
Sheets("auditorias").Select
fila = 0
num_auditoria = combo_aud
While idBusca <> num_auditoria
fila = fila + 1
idBusca = Range("D" & fila).Value
Wend
Cells(combo_aud.ListIndex).Select
Cmb_programa = Range("c" & fila).Value
combo_aud = Range("d" & fila).Value
cmb_tipo = Range("e" & fila).Value
cmb_dependencia = Range("f" & fila).Value
cmb_prog = Range("g" & fila).Value
cmb_ejercicio = Range("h" & fila).Value
f_inicio = Range("i" & fila).Value
f_cierre = Range("j" & fila).Value
txt_autprog = Range("k" & fila).Value
txt_autejec = Range("l" & fila).Value
txt_impauditado = Range("m" & fila).Value
cmb_depto = Range("n" & fila).Value
'combo_aud.SetFocus
'auditorias.Activate
End Sub

La idea es poder realizar cambios los diferentes campos del registro deseado. Sin embargo, tengo un error al querer guardar los cambios realizados con la siguiente nstrucción .

Private Sub cmd_guardar_Click()
Sheets("auditorias").Range("c" & fila) = Cmb_programa.Value
Sheets("auditorias").Range("d" & fila) = combo_aud.Value
Sheets("auditorias").Range("e" & fila) = cmb_tipo.Value
Sheets("auditorias").Range("f" & fila) = cmb_dependencia.Value
Sheets("auditorias").Range("g" & fila) = cmb_prog.Value
Sheets("auditorias").Range("h" & fila) = cmb_ejercicio.Value
Sheets("auditorias").Range("i" & fila) = f_inicio.Value
Sheets("auditorias").Range("j" & fila) = f_cierre.Value
Sheets("auditorias").Range("k" & fila) = txt_autprog.Value
Sheets("auditorias").Range("l" & fila) = txt_autejec.Value
Sheets("auditorias").Range("m" & fila) = txt_impauditado.Value
Sheets("auditorias").Range("n" & fila) = cmb_depto.Value
cmd_guardar.Enabled = False
End Sub

iDeseo subir el archivo para poder ser mas claro.

1 Respuesta

Respuesta
1

Después de esta línea

Private Sub cmd_guardar_Click()

Agrega la siguiente línea

fila = combo_aud.ListIndex + 3

Saludos. Dante Amor
No olvides finalizar la pregunta.

Buenas tardes, agradezco su pronta atención y en realidad me ha funcionado, solo que ahora brinca otro problema. Al momento de seleccionar en el combobox el primer registro me arroja un error. el código es el siguiente

Private Sub combo_aud_Change()
Dim num_auditoria As String
Dim idBusca As String
Dim fila As Integer
Application.ScreenUpdating = False
Sheets("auditorias").Select
fila = 0
num_auditoria = combo_aud
While idBusca <> num_auditoria
fila = fila + 1
idBusca = Range("D" & fila).Value
Wend

'En la siguiente líne a me arroja el error
Cells(combo_aud.ListIndex).Select
Cmb_programa = Range("c" & fila).Value
combo_aud = Range("d" & fila).Value
cmb_tipo = Range("e" & fila).Value
cmb_dependencia = Range("f" & fila).Value
cmb_prog = Range("g" & fila).Value
cmb_ejercicio = Range("h" & fila).Value
f_inicio = Range("i" & fila).Value
f_cierre = Range("j" & fila).Value
txt_autprog = Range("k" & fila).Value
txt_autejec = Range("l" & fila).Value
txt_impauditado = Range("m" & fila).Value
cmb_depto = Range("n" & fila).Value
'combo_aud.SetFocus
'auditorias.Activate
End Sub

Gracias

No se requiere esa línea, borra la línea

Cells(combo_aud.ListIndex).Select

No olvides finalizar la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas