Visual Basic para Aplicaciones - Botón Modificar

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 28
Ha aumentado 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Botón Modificar

Publicado por Michael Elvis (16 intervenciones) el 25/03/2020 03:18:32
Buenas noches, tengo un problema con mi botón de modificar, por favor si me pueden ayudar. La macro que tengo si llega a modificar pero solo la primera fila, quisiera que me modifique la 2da, 3ra, etc.
Aquí les dejo la codificación de la macro.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub cmb_modificar_Click()
 
'selecciono la hoja
Worksheets("FICHA").Select
 
'selecciono la columna donde se encuentra los apellidos y nombres
For Each CL In Worksheets("FICHA").Range("C15:C39")
 
'Igualo el contenido del textbox con el de la hoja excel
If CL = txt_ap.Text Then
    ActiveCell.Offset(0, 1) = cmb_p1.Value
    ActiveCell.Offset(0, 2) = cmb_p2.Value
    ActiveCell.Offset(0, 3) = cmb_p3.Value
    ActiveCell.Offset(0, 4) = cmb_p4.Value
    ActiveCell.Offset(0, 5) = cmb_p5.Value
End If
Next
End Sub
modificar

Nota: al dar doble click en el listbox se carga los datos en el textbox y en los combobox, luego comparo los datos del textbox con la celda excel, al realizar esta comparación solo cambia en la primera fila así seleccione la segunda fila solo cambia en la primera fila.
Gracias de ante mano por la ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 9
Ha aumentado su posición en 3 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Botón Modificar

Publicado por victor (10 intervenciones) el 25/03/2020 19:57:49
ActiveCell.Offset(0, 1) = cmb_p1.Value

checa que el offset se queda en cero, pon una variable (contador) e implementado, cada vuelta del for each se va incrementando.

Espero sea eso
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 28
Ha aumentado 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Botón Modificar

Publicado por Michael Elvis (16 intervenciones) el 25/03/2020 21:36:40
Buenas tardes, la verdad con lo que me dice no entiendo, por favor si alguien me podría ayudar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 9
Ha aumentado su posición en 3 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Botón Modificar

Publicado por victor (10 intervenciones) el 25/03/2020 22:00:12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
k=1
 
 
For Each CL In Worksheets("FICHA").Range("C15:C39")
 
'Igualo el contenido del textbox con el de la hoja excel
If CL = txt_ap.Text Then
    ActiveCell.Offset(k, 1) = cmb_p1.Value
    ActiveCell.Offset(k, 2) = cmb_p2.Value
    ActiveCell.Offset(k, 3) = cmb_p3.Value
    ActiveCell.Offset(k, 4) = cmb_p4.Value
    ActiveCell.Offset(k, 5) = cmb_p5.Value
 
    k=k+1
 
End If
Next
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 28
Ha aumentado 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Botón Modificar

Publicado por Michael Elvis (16 intervenciones) el 26/03/2020 00:00:17
Gracias por el aporte, hice un pequeño cambio y ahora si funciona, gracias. Ahora me nace una necesidad:
* modificar los nombres y apellidos que se encuentra en el txt_ap pero el formulario no me permite.
* también mencionar que esas modificaciones funcionan si el cursor se encuentra en la celda C15, si lo pongo en la celda C14 el nombre lo poned el contenido del cbb_p1.
* La macro que tengo ahora es la siguiente.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Application.ScreenUpdating = False
Worksheets("FICHA").Select
 
k = 0
'para cada celda en el range A1:A20 foglio1
For Each CL In Worksheets("FICHA").Range("C15:C39")
 
'si la celda es igual al valor seleccionado en la combobox
If CL = txt_ap.Text Then
    'ActiveCell.Offset(k, -1) = txt_ap.Value
    ActiveCell.Offset(k, 1) = cmb_p1.Value
    ActiveCell.Offset(k, 2) = cmb_p2.Value
    ActiveCell.Offset(k, 3) = cmb_p3.Value
    ActiveCell.Offset(k, 4) = cmb_p4.Value
    ActiveCell.Offset(k, 5) = cmb_p5.Value
End If
k = k + 1
Next

por favor ayudame en dar soluci{on a esas necesidades, muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar