Первый раздел - поиск рабочей книги на рабочем столе, затем поиск данных и отображение их в некоторых текстовых полях и комбинированном ящике, который работает отлично! Проблема в том, что когда я хочу отредактировать эти данные, я хочу отправить эти данные обратно в ту же строку, где они были. У меня ошибка в том, что он говорит: «отсутствует объект». Я сейчас работаю над исправлением этого, поэтому, если я найду ответ, я опубликую его.
Private Sub btnBuscar4_Click()
'declarar las variables
Dim FindRow
Dim i As Integer
Dim cRow As String
Dim Datos As Worksheet
Set Datos = Workbooks.Open("C:\Users\rescariz\Desktop\Plataforma\Datos.xlsx").Worksheets("Datos")
'hold in memory and stop screen flicker
Application.ScreenUpdating = False
'error block
On Error GoTo errHandler:
'Filtrar solo por Legajo
If Me.BLeg3 <> "" Then
'Encontrar la fila con la data
cRow = Me.BLeg3.Value
Set FindRow = Datos.Range("A:A").Find(What:=cRow, LookIn:=xlValues)
'agregar los valores a las casillas correspondientes
Leg3.Value = FindRow
Fech3.Value = FindRow.Offset(0, 4)
Ape3.Value = FindRow.Offset(0, 1)
Nomb3.Value = FindRow.Offset(0, 2)
Pues3.Value = FindRow.Offset(0, 3)
ComboLiqui3.Value = FindRow.Offset(0, 5)
FechaDesde3.Value = FindRow.Offset(0, 6)
FechaHasta3.Value = FindRow.Offset(0, 7)
Cant3.Value = FindRow.Offset(0, 8)
Obs3.Value = FindRow.Offset(0, 9)
'Filtrar solo por Apellido
ElseIf Me.BApe3 <> "" Then
'Encontrar la fila con la data
cRow = Me.BApe3.Value
Set FindRow = Datos.Range("B:B").Find(What:=cRow, LookIn:=xlValues)
'agregar los valores a las casillas correspondientes
Leg3.Value = FindRow.Offset(0, -1)
Fech3.Value = FindRow.Offset(0, 3)
Ape3.Value = FindRow
Nomb3.Value = FindRow.Offset(0, 1)
Pues3.Value = FindRow.Offset(0, 2)
ComboLiqui3.Value = FindRow.Offset(0, 4)
FechaDesde3.Value = FindRow.Offset(0, 5)
FechaHasta3.Value = FindRow.Offset(0, 6)
Cant3.Value = FindRow.Offset(0, 7)
Obs3.Value = FindRow.Offset(0, 8)
Else
MsgBox "Por favor, ingresar un Legajo o un Apellido"
End If
'error block
On Error GoTo 0
Exit Sub
errHandler:
MsgBox "Error! Verificar los datos ingresados, porque no son correctos!" & vbCrLf & Err.Description
End Sub
Private Sub btnComple3_Click()
'declare the variables
Dim findvalue As Range
Dim cNum As Integer
Dim Datos As Worksheet
Set Datos = Workbooks.Open("C:\Users\rescariz\Desktop\Plataforma\Datos.xlsx").Worksheets("Datos")
'error handling
On Error GoTo errHandler:
'hold in memory and stop screen flicker
Application.ScreenUpdating = False
Set Datos = Hoja1
'check for values
'If BLeg3.Value = "" Or BApe3.Value = "" Then
'MsgBox "No hay datos para modificar"
'Exit Sub
'End If
'Buscar por Legajo la fila para editar
If BApe3.Value = "" Then
Set findvalue = Datos.Range("A:A").Find(What:=BLeg3.Value, LookIn:=xlValues, LookAt:=xlWhole)
'update the values
findvalue.Offset(0, 4) = Fech3.Value
findvalue.Offset(0, 0) = Leg3.Value
findvalue.Offset(0, 1) = Ape3.Value
findvalue.Offset(0, 2) = Nomb3.Value
findvalue.Offset(0, 3) = Pues3.Value
findvalue.Offset(0, 5) = ComboLiqui3.Value
findvalue.Offset(0, 6) = FechaDesde3.Value
findvalue.Offset(0, 7) = FechaHasta3.Value
findvalue.Offset(0, 8) = Cant3.Value
findvalue.Offset(0, 9) = Obs3.Value
MsgBox "Se han modificado correctamente los datos"
ElseIf BLeg3.Value = "" Then
Set findvalue = Datos.Range("B:B").Find(What:=BApe3.Value, LookIn:=xlValues, LookAt:=xlWhole)
'update the values
findvalue.Offset(0, 3) = Fech3.Value
findvalue.Offset(0, -1) = Leg3.Value
findvalue.Offset(0, 0) = Ape3.Value
findvalue.Offset(0, 1) = Nomb3.Value
findvalue.Offset(0, 2) = Pues3.Value
findvalue.Offset(0, 4) = ComboLiqui3.Value
findvalue.Offset(0, 5) = FechaDesde3.Value
findvalue.Offset(0, 6) = FechaHasta3.Value
findvalue.Offset(0, 7) = Cant3.Value
findvalue.Offset(0, 8) = Obs3.Value
MsgBox "Se han modificado correctamente los datos"
End If
'error block
On Error GoTo 0
Exit Sub
errHandler:
'show error information in a messagebox
MsgBox "An Error has Occurred " & vbCrLf & _
"The error number is: " & Err.Number & vbCrLf & _
Err.Description & vbCrLf & "Please notify the administrator"
End Sub