Bucle infinito
Hola Elsa
¿que crees? Hice la modificación pero ahora se queda en un bucle infinito que me obliga a cortar Excel, siguiendo el programa me doy cuenta que la línea "nuevo=midato.addres nunca cambia la posición aunque lo este condicionando a que si el siniestro y rubro encontrados son los mismos que se solicitaron para grabar los cambios simplemente no esta coordinado y eso es lo que truena las lineas de Range(NUEVO).Offset(0, 30)puedes ayudarme? Esta pregunta la hice en "guardar el registro correcto"
==========================
Hola:
Leyendo tu macro noté que estás guardando la fila antes del bucle DO, por lo que si encuentra el registro dentro del bucle lo coloca en la fila del primer encontrado.
Realizá este cambio que dejé en negrita.
Private Sub CmbAceptar_Click()
Sheets("BASE").Select
ActiveSheet.Unprotect (14)
Filalibre = Range("A3").End(xlDown).Offset(1, 0).Row 'la variable filalibre guarda el nro. De la primer celda vacía.
Control = 0
Dato = TxtSiniestro
Dato2 = CboRubro
Rango = "A3:A" & Filalibre
ActiveSheet.Range("A3").Select
While ActiveCell <> ""
Set Midato = Sheets("Base").Range(Rango).Find(Dato, LookIn:=xlValues, lookat:=xlWhole)
If Not Midato Is Nothing Then 'lo encontro
'NUEVO = Midato.Address aquí no va
Dato3 = ActiveCell.Offset(0, 1).Value
Do
If Dato2 = Dato3 Then
MsgBox NUEVO
NUEVO = Midato.Address
Sheets("Base").Select
¿que crees? Hice la modificación pero ahora se queda en un bucle infinito que me obliga a cortar Excel, siguiendo el programa me doy cuenta que la línea "nuevo=midato.addres nunca cambia la posición aunque lo este condicionando a que si el siniestro y rubro encontrados son los mismos que se solicitaron para grabar los cambios simplemente no esta coordinado y eso es lo que truena las lineas de Range(NUEVO).Offset(0, 30)puedes ayudarme? Esta pregunta la hice en "guardar el registro correcto"
==========================
Hola:
Leyendo tu macro noté que estás guardando la fila antes del bucle DO, por lo que si encuentra el registro dentro del bucle lo coloca en la fila del primer encontrado.
Realizá este cambio que dejé en negrita.
Private Sub CmbAceptar_Click()
Sheets("BASE").Select
ActiveSheet.Unprotect (14)
Filalibre = Range("A3").End(xlDown).Offset(1, 0).Row 'la variable filalibre guarda el nro. De la primer celda vacía.
Control = 0
Dato = TxtSiniestro
Dato2 = CboRubro
Rango = "A3:A" & Filalibre
ActiveSheet.Range("A3").Select
While ActiveCell <> ""
Set Midato = Sheets("Base").Range(Rango).Find(Dato, LookIn:=xlValues, lookat:=xlWhole)
If Not Midato Is Nothing Then 'lo encontro
'NUEVO = Midato.Address aquí no va
Dato3 = ActiveCell.Offset(0, 1).Value
Do
If Dato2 = Dato3 Then
MsgBox NUEVO
NUEVO = Midato.Address
Sheets("Base").Select
1 Respuesta
Respuesta de Elsa Matilde
1