Aplicación en Microsoft Excel, descifrar fallos en registros
Hola Elsa.
He trabajado en esta rutina largo tiempo, aunque logre que encuentre el registro correcto a la hora de pedirle que grabe los datos nuevos me los guarda en otro registro.
En esta pequeña aplicación los registros se repirten por el número de siniestro pero tienen diferente rubro, así que si le pido el registro B4985369 con el rubro RDMque esta en A3 lo encuentra y me muestra la fecha de turnado.
Pero cuando le pido grabar el registro con los datos nuevo se va al renglón A7 (B4985369, ¿RGMO) y graba en la celdas especificadas así lo hace con todos los intentos me puede ayudar a descifrar donde esta la falla?
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
Dato3 = ActiveCell.Offset(0, 1).Value
Do
If Dato2 = Dato3 Then
MsgBox NUEVO
Sheets("Base").Select
Range(NUEVO).Offset(0, 30).Value = Format(TxtFechaIngreso.Value, "DD-MMM-YY") 'Diasin
Range(NUEVO).Offset(0, 31).Value = TxtPagosAnte 'Pagos
Range(NUEVO).Offset(0, 32).Value = Format(TxtRecuperable.Value, "$###,###,###.00") 'Monto Recuperable
Range(NUEVO).Offset(0, 33).Value = Format(TxtRecuperado.Value, "$###,###,###.00") 'Monto Recuperado
Range(NUEVO).Offset(0, 34).Value = CboRubroRecup 'Rubro Recuperacion
Range(NUEVO).Offset(0, 35).Value = CboAbogado 'Abogado Asignado
Range(NUEVO).Offset(0, 36).Value = CboRubroRecup 'Rubro Recuperado
Range(NUEVO).Offset(0, 37).Value = TxtRed 'Red
Range(NUEVO).Offset(0, 38).Value = Format(TxtMontoTotal.Value, "$###,###,###.00") 'Monto Total de Deuda
'================================================
Range(NUEVO).Offset(0, 39).Value = "MAY" 'Bandera de mes
Sheets("Principal").Select
End If
Set Midato = Sheets("Base").Range(Rango).FindNext(Midato)
'el bucle continúa mientras se encuentre coincidencias y NO sea la primer celda encontrada
Loop While Not Midato Is Nothing And Midato.Address <> NUEVO
End If
Set Midato = Nothing
ActiveCell.Offset(1, 0).Select
Wend
Sheets("Principal").Select
CmbAceptar.Enabled = True
ActiveSheet.Protect Password:="14"
End Sub
Private Sub CmbBuscaraltas_Click()
Sheets("BASE").Select
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
If Dato2 = "" Then
Sheets("Principal").Select
MsgBox ("FALTA EL RUBRO"), vbCritical
Set Midato = Nothing
Exit Sub
End If
While ActiveCell <> ""
Set Midato = Sheets("Base").Range(Rango).Find(Dato, LookIn:=xlValues, lookat:=xlWhole)
If Not Midato Is Nothing Then 'lo encontro
Ubica = Midato.Address
Dato3 = ActiveCell.Offset(0, 1).Value
Do
If Dato2 = Dato3 Then
MsgBox Ubica
TxtFechaTurnado.Value = ActiveCell.Offset(0, 6).Value
TxtPagosAnte.Value = ActiveCell.Offset(0, 31).Value
Asistencia = ActiveCell.Offset(0, 12).Value
If Asistencia = "SI" Then
lblAsistencia.Font.Bold = True
lblAsistencia.Enabled = True
lblAsistencia.BackColor = &HFFFF&
End If
'TxtFechaIngreso.Value = ActiveCell.Offset(0, 6).Value 'Fecha Ingreso
Sheets("Principal").Select
MsgBox ("SINIESTRO ENCONTRADO PROCEDA A CAPTURAR LA RECUPERACION"), vbInformation
DESBLOQUEO
Exit Sub
End If
Set Midato = Sheets("Base").Range(Rango).FindNext(Midato)
'el bucle continúa mientras se encuentre coincidencias y NO sea la primer celda encontrada
Loop While Not Midato Is Nothing And Midato.Address <> Ubica
End If
Set Midato = Nothing
ActiveCell.Offset(1,...
He trabajado en esta rutina largo tiempo, aunque logre que encuentre el registro correcto a la hora de pedirle que grabe los datos nuevos me los guarda en otro registro.
En esta pequeña aplicación los registros se repirten por el número de siniestro pero tienen diferente rubro, así que si le pido el registro B4985369 con el rubro RDMque esta en A3 lo encuentra y me muestra la fecha de turnado.
Pero cuando le pido grabar el registro con los datos nuevo se va al renglón A7 (B4985369, ¿RGMO) y graba en la celdas especificadas así lo hace con todos los intentos me puede ayudar a descifrar donde esta la falla?
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
Dato3 = ActiveCell.Offset(0, 1).Value
Do
If Dato2 = Dato3 Then
MsgBox NUEVO
Sheets("Base").Select
Range(NUEVO).Offset(0, 30).Value = Format(TxtFechaIngreso.Value, "DD-MMM-YY") 'Diasin
Range(NUEVO).Offset(0, 31).Value = TxtPagosAnte 'Pagos
Range(NUEVO).Offset(0, 32).Value = Format(TxtRecuperable.Value, "$###,###,###.00") 'Monto Recuperable
Range(NUEVO).Offset(0, 33).Value = Format(TxtRecuperado.Value, "$###,###,###.00") 'Monto Recuperado
Range(NUEVO).Offset(0, 34).Value = CboRubroRecup 'Rubro Recuperacion
Range(NUEVO).Offset(0, 35).Value = CboAbogado 'Abogado Asignado
Range(NUEVO).Offset(0, 36).Value = CboRubroRecup 'Rubro Recuperado
Range(NUEVO).Offset(0, 37).Value = TxtRed 'Red
Range(NUEVO).Offset(0, 38).Value = Format(TxtMontoTotal.Value, "$###,###,###.00") 'Monto Total de Deuda
'================================================
Range(NUEVO).Offset(0, 39).Value = "MAY" 'Bandera de mes
Sheets("Principal").Select
End If
Set Midato = Sheets("Base").Range(Rango).FindNext(Midato)
'el bucle continúa mientras se encuentre coincidencias y NO sea la primer celda encontrada
Loop While Not Midato Is Nothing And Midato.Address <> NUEVO
End If
Set Midato = Nothing
ActiveCell.Offset(1, 0).Select
Wend
Sheets("Principal").Select
CmbAceptar.Enabled = True
ActiveSheet.Protect Password:="14"
End Sub
Private Sub CmbBuscaraltas_Click()
Sheets("BASE").Select
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
If Dato2 = "" Then
Sheets("Principal").Select
MsgBox ("FALTA EL RUBRO"), vbCritical
Set Midato = Nothing
Exit Sub
End If
While ActiveCell <> ""
Set Midato = Sheets("Base").Range(Rango).Find(Dato, LookIn:=xlValues, lookat:=xlWhole)
If Not Midato Is Nothing Then 'lo encontro
Ubica = Midato.Address
Dato3 = ActiveCell.Offset(0, 1).Value
Do
If Dato2 = Dato3 Then
MsgBox Ubica
TxtFechaTurnado.Value = ActiveCell.Offset(0, 6).Value
TxtPagosAnte.Value = ActiveCell.Offset(0, 31).Value
Asistencia = ActiveCell.Offset(0, 12).Value
If Asistencia = "SI" Then
lblAsistencia.Font.Bold = True
lblAsistencia.Enabled = True
lblAsistencia.BackColor = &HFFFF&
End If
'TxtFechaIngreso.Value = ActiveCell.Offset(0, 6).Value 'Fecha Ingreso
Sheets("Principal").Select
MsgBox ("SINIESTRO ENCONTRADO PROCEDA A CAPTURAR LA RECUPERACION"), vbInformation
DESBLOQUEO
Exit Sub
End If
Set Midato = Sheets("Base").Range(Rango).FindNext(Midato)
'el bucle continúa mientras se encuentre coincidencias y NO sea la primer celda encontrada
Loop While Not Midato Is Nothing And Midato.Address <> Ubica
End If
Set Midato = Nothing
ActiveCell.Offset(1,...
1 respuesta
Respuesta de Elsa Matilde
1