Q:

Excel VBA Userform, Update and delete database,

I'm very new to Excel VBA and I have found solutions to most my problem through Stackoverflow.com But still, there is a problem I've couldn't solve.
I am working on a multidimensional Userform to maintain our database. The Userform I'm working on containing option boxes, checkboxes, textboxes and combo boxes.
After long search and work, I fixed the search bottoms and they all are working. But I can not get the Update bottom and the Delete bottom to work.
I have uploaded the file, I would be grateful if anyone can help me out with this issue. 
Private Sub bt2_Click() 'Update shipment
Dim sonsat As Long, sor As String
If ListBox1.ListIndex = -1 Then
MsgBox "Choose an item", vbExclamation, ""
Exit Sub
End If

sor = MsgBox("Are your sure?", vbYesNo, "")
If sor = vbNo Then Exit Sub

lastrow = Sheets("logbook").Cells(Rows.count, 1).End(xlUp).Row
Sheets("logbook").Range("A1:A" & lastrow).Find(What:=ListBox1.Value, 
LookIn:=xlValues, LookAt:=xlWhole).Activate
sonsat = ActiveCell.Row
Cells(sonsat, 1) = op1
Cells(sonsat, 2) = op2
Cells(sonsat, 3) = chb1
Cells(sonsat, 4) = chb2
Cells(sonsat, 5) = tb14
Cells(sonsat, 6) = tb1
Cells(sonsat, 7) = tb2
Cells(sonsat, 8) = tb3
Cells(sonsat, 9) = tb4
Cells(sonsat, 10) = tb5
Cells(sonsat, 11) = cb1
Cells(sonsat, 12) = tb6
Cells(sonsat, 13) = tb7
Cells(sonsat, 14) = tb8
Cells(sonsat, 15) = tb9
Cells(sonsat, 16) = cb2
Cells(sonsat, 17) = tb10
Cells(sonsat, 18) = tb11
Cells(sonsat, 19) = tb12
Cells(sonsat, 20) = cb3
Cells(sonsat, 21) = cb4
Cells(sonsat, 22) = tb13

MsgBox "Item Has Been Changed", vbInformation, ""
ListBox1.list = Sheets("logbook").Range("A1:V" & 
Sheets("logbook").Cells(Rows.count, 1).End(xlUp).Row).Value

If Me.op1.Value = True Then
Cells(sonsat, 1).Value = "X"
Else
Cells(sonsat, 1).Value = "-"
End If

If Me.op2.Value = True Then
Cells(sonsat, 2).Value = "X"
Else
Cells(sonsat, 2).Value = "-"
End If

If Me.chb1.Value = True Then
Cells(sonsat, 3).Value = "X"
Else
Cells(sonsat, 3).Value = "-"
End If

If Me.chb2.Value = True Then
Cells(sonsat, 4) = "X"
Else
Cells(sonsat, 4) = "-"
End If
End Sub

Private Sub bt3_Click() 'delete shipmet
Dim sil As Long
Dim e, b, c, d As Integer

If ListBox1.ListIndex = -1 Then
MsgBox "Choose an entry", vbExclamation, ""
Exit Sub
End If

If ListBox1.ListIndex >= 0 Then
cevap = MsgBox("Entry will be deleted. ... Are you sure ?", vbYesNo, "")
If cevap = vbYes Then
Sheets("logbook").Range("A:A").Find(What:=ListBox1.Value).Activate
sil = ActiveCell.Row
Sheets("logbook").Rows(sil).Delete
End If
End If

For d = 1 To 2
Controls("op" & d) = False
Next

For c = 1 To 4
Controls("cb" & c) = "-"
Next

For b = 1 To 2
Controls("chb" & b) = False
Next

For e = 1 To 14
Controls("tb" & e) = ""
Next

ListBox1.list = Sheets("logbook").Range("A1:V" & 
Sheets("logbook").Cells(Rows.count, 1).End(xlUp).Row).Value
End Sub

A:

The following is based on the file you uploaded to Google Drive (as at 2017-06-08, 09:01 UK Time).
I lost a few controls when trying to open the workbook, perhaps our versions of Excel are too different for mine to cope with them. These were your date controls dtp2 and dtp3. I commented out code relating to these whenever they caused me trouble. Hopefully that doesn't negatively affect what follows ...
Main Suggestions

To get things to run at all I had to declare the lastrow variable and the cevap variable.
Your listbox1 is allowing multi-select. If you want to update just one row, you need to ensure that only one row is selected. Within the "Behaviour" section of the control properties, I'd change MultiSelect to 0 - fmMultiSelectSingle.
Because you were allowing multi-select, listbox1.value wasn't working. You have to do it differently when you allow multi-select (see here). But assuming you're okay with single-select, you don't need to worry about that.
When you use your Find ... Activate you'll then get a different error. Excel can't Activate the spreadsheet because Userform1 retains focus. You might be able to change that by making the form "non-modal", but I wouldn't. Instead, rather than, for example:
Sheets("logbook").Range("A1:A" & lastrow).Find(What:=ListBox1.Value, _
   LookIn:=xlValues, LookAt:=xlWhole).Activate
sonsat = ActiveCell.Row

I'd do
sonsat = Sheets("logbook").Range("A1:A" & 
   lastrow).Find(What:=ListBox1.Value, _
LookIn:=xlValues, LookAt:=xlWhole).Row

Which avoid's the need to Activate. After that the code should run without complaining.
However, it still doesn't do what you want. The value of the listbox is based on your bound column, which you've set to the be first column. That value doesn't uniquely identify the row. As a result, when you run the update/delete the code updates/deletes the first matching row.

Minor Matters

There is currently nothing preventing the user selecting and updating/deleting the header row. Personally, I'd take them out of the listbox (start at A2 instead of A1) and add them as "column headings" in the form.
I'm guessing the title of the form should be "Data Entry Application" not "Data Entery Application".

