У меня есть кнопка, которая ищет столбцы для данных. Если я нажимаю следующую кнопку, следующая строка с этим фильтром будет заполнять текстовые поля и так далее ... Но когда я нажимаю предыдущую кнопку, она просто возвращает пустые ячейки. Это происходит только тогда, когда поиск осуществляется по идентификатору пользователя, а не по фамилии пользователя. Вот код:
Я пробовал с Long
, который работает на следующей кнопке, но выдает ошибку на предыдущей кнопке ... Я пробовал string
и, как я уже сказал, он приносит пустые значения .. .
Private Sub bsReg1_Click()
Dim Datos As Worksheet
Dim bRow As String
Dim lRow As Long
Dim FindRow As Range
Set Datos = Workbooks.Open("C:\Users\rescariz\Desktop\Plataforma\Datos.xlsm").Worksheets("Datos")
If Me.BLeg3.Value <> "" And Me.BApe3.Value = "" Then
lRow = Me.BApe3.Value
Set FindRow = Datos.Range("A:A").Find(What:=lRow, After:=Range(Me.CurrentAddress), SearchDirection:=xlPrevious, LookIn:=xlValues)
Me.CurrentAddress = FindRow.Address 'te trae la celda actual
'agregar los valores a las casillas correspondientes
Me.Leg3.Value = FindRow.Offset(0, 0)
Me.Fech3.Value = FindRow.Offset(0, 4)
Me.Ape3.Value = FindRow.Offset(0, 1)
Me.Nomb3.Value = FindRow.Offset(0, 2)
Me.Pues3.Value = FindRow.Offset(0, 3)
Me.ComboLiqui3 = FindRow.Offset(0, 5)
Me.FechaDesde3 = FindRow.Offset(0, 6)
Me.FechaHasta3 = FindRow.Offset(0, 7)
Me.Dia3.Value = FindRow.Offset(0, 12)
Me.Dia4.Value = FindRow.Offset(0, 13)
Me.Cant3 = FindRow.Offset(0, 8)
Me.Obs3 = FindRow.Offset(0, 9)
Else
bRow = Me.BApe3.Value
Set FindRow = Datos.Range("B:B").Find(What:=bRow, After:=Range(Me.CurrentAddress), SearchDirection:=xlPrevious, LookIn:=xlValues)
Me.CurrentAddress = FindRow.Address 'te trae la celda actual
'agregar los valores a las casillas correspondientes
Me.Leg3.Value = FindRow.Offset(0, -1)
Me.Fech3.Value = FindRow.Offset(0, 3)
Me.Ape3.Value = FindRow.Offset(0, 0)
Me.Nomb3.Value = FindRow.Offset(0, 1)
Me.Pues3.Value = FindRow.Offset(0, 2)
Me.ComboLiqui3 = FindRow.Offset(0, 4)
Me.FechaDesde3 = FindRow.Offset(0, 5)
Me.FechaHasta3 = FindRow.Offset(0, 6)
Me.Cant3 = FindRow.Offset(0, 7)
Me.Obs3 = FindRow.Offset(0, 8)
Dia3.Value = FindRow.Offset(0, 11)
Dia4.Value = FindRow.Offset(0, 12)
End If
Exit Sub
End Sub
Private Sub bsReg2_Click()
Dim Datos As Worksheet
Dim bRow As String
Dim FindRow As Range
Dim lRow As Long
Set Datos = Workbooks.Open("C:\Users\rescariz\Desktop\Plataforma\Datos.xlsm").Worksheets("Datos")
If Me.BLeg3.Value <> "" And Me.BApe3.Value = "" Then
lRow = Me.BLeg3.Value
Set FindRow = Datos.Range("A:A").Find(What:=lRow, After:=Range(Me.CurrentAddress), SearchDirection:=xlNext, LookIn:=xlValues)
Me.CurrentAddress = FindRow.Address 'te trae la celda actual
'agregar los valores a las casillas correspondientes
Me.Leg3.Value = FindRow.Offset(0, 0)
Me.Fech3.Value = FindRow.Offset(0, 4)
Me.Ape3.Value = FindRow.Offset(0, 1)
Me.Nomb3.Value = FindRow.Offset(0, 2)
Me.Pues3.Value = FindRow.Offset(0, 3)
Me.ComboLiqui3 = FindRow.Offset(0, 5)
Me.FechaDesde3 = FindRow.Offset(0, 6)
Me.FechaHasta3 = FindRow.Offset(0, 7)
Me.Dia3.Value = FindRow.Offset(0, 12)
Me.Dia4.Value = FindRow.Offset(0, 13)
Me.Cant3 = FindRow.Offset(0, 8)
Me.Obs3 = FindRow.Offset(0, 9)
Else
bRow = Me.BApe3.Value
Set FindRow = Datos.Range("B:B").Find(What:=bRow, After:=Range(Me.CurrentAddress), SearchDirection:=xlNext, LookIn:=xlValues)
Me.CurrentAddress = FindRow.Address 'te trae la celda actual
'agregar los valores a las casillas correspondientes
Me.Leg3.Value = FindRow.Offset(0, -1)
Me.Fech3.Value = FindRow.Offset(0, 3)
Me.Ape3.Value = FindRow.Offset(0, 0)
Me.Nomb3.Value = FindRow.Offset(0, 1)
Me.Pues3.Value = FindRow.Offset(0, 2)
Me.ComboLiqui3 = FindRow.Offset(0, 4)
Me.FechaDesde3 = FindRow.Offset(0, 5)
Me.FechaHasta3 = FindRow.Offset(0, 6)
Me.Cant3 = FindRow.Offset(0, 7)
Me.Obs3 = FindRow.Offset(0, 8)
Dia3.Value = FindRow.Offset(0, 11)
Dia4.Value = FindRow.Offset(0, 12)
End If
Exit Sub
End Sub