Bill Williamson
Board Regular
- Joined
- Oct 7, 2019
- Messages
- 124
Hello,
Current userform has a save button, wich adds data to sheet 1, Added Search Button to find saved data for editing. If I use save button for Updated information it adds the information like new data at the bottom while old version still in the list. I added update button to use only when existing data is modified and I need it to save on the same row the original data was on, But I have a code issue. I am so new at this I cant see what the issue is..
I have Highlighted the line where I get the Run-Time Error '1004'
Application-Defined or Object-defined error
Any Help is appreciated
thank you
Bill Williamson
Current userform has a save button, wich adds data to sheet 1, Added Search Button to find saved data for editing. If I use save button for Updated information it adds the information like new data at the bottom while old version still in the list. I added update button to use only when existing data is modified and I need it to save on the same row the original data was on, But I have a code issue. I am so new at this I cant see what the issue is..
I have Highlighted the line where I get the Run-Time Error '1004'
Application-Defined or Object-defined error
Rich (BB code):
Private Sub Clearform()
'Sub Clearform()
Dim ctrl As MSForms.Control
For Each ctrl In Me.Controls
Select Case TypeName(ctrl)
Case "TextBox"
ctrl.Text = ""
Case "ComboBox"
ctrl.ListIndex = -1
Case "CheckBox"
ctrl.Value = False
End Select
Next
End Sub
Private Sub ApperanceCheckBox_Click()
End Sub
Private Sub BRReviewCheckBox_Click()
End Sub
Private Sub BRReview_Click()
End Sub
Private Sub CancelButton_Click()
Unload Me
End Sub
Private Sub CommandButton1_Click()
'Show User form
UserForm1.Show
End Sub
Private Sub ClearButton_Click()
'Sub Clearform()
Dim ctrl As MSForms.Control
For Each ctrl In Me.Controls
Select Case TypeName(ctrl)
Case "TextBox"
ctrl.Text = ""
Case "ComboBox"
ctrl.ListIndex = -1
Case "CheckBox"
ctrl.Value = False
End Select
Next
End Sub
Private Sub UserForm1_Click()
End Sub
Private Sub UserForm1_Initialize()
End Sub
Private Sub CMDSearch_Click()
Dim Fnd As Range
With Sheets("Sheet1")
If .AutoFilterMode Then .AutoFilterMode = False
If Customer.Value <> "" Then .Range("A1").AutoFilter 1, Me.Customer.Value
If CSONumber.Value <> "" Then .Range("A1").AutoFilter 2, Me.CSONumber.Value
If JobNumber.Value <> "" Then .Range("A1").AutoFilter 3, Me.JobNumber.Value
On Error Resume Next
Set Fnd = .Range("A2:A" & Rows.Count).SpecialCells(xlVisible)(1)
On Error GoTo 0
If Fnd Is Nothing Then
MsgBox "Search term not found"
Else
Customer.Text = Fnd.Value
CSONumber.Text = Fnd.Offset(, 1).Value
JobNumber.Text = Fnd.Offset(, 2).Value
PCWeldType.Value = Fnd.Offset(, 3).Value
PCWeldGrind.Value = Fnd.Offset(, 4).Value
PCFinish.Value = Fnd.Offset(, 5).Value
NonPCWeld.Value = Fnd.Offset(, 6).Value
NonPCGrind.Value = Fnd.Offset(, 7).Value
NonPCFinish.Value = Fnd.Offset(, 8).Value
BRReview.Value = LCase(Fnd.Offset(, 9).Value) = "yes"
BOMReview.Value = LCase(Fnd.Offset(, 10).Value) = "yes"
DimReview.Value = LCase(Fnd.Offset(, 11).Value) = "yes"
WeldReview.Value = LCase(Fnd.Offset(, 12).Value) = "yes"
Apperance.Value = LCase(Fnd.Offset(, 13).Value) = "yes"
Complete.Value = LCase(Fnd.Offset(, 14).Value) = "yes"
End If
'Turns off auto filter, shows all data
.AutoFilterMode = False
End With
End Sub
Private Sub CMDUpdate_Click()
Dim CurrentRow As Long
'Make Sheet1 Active
Sheet1.Activate
'Update Records
Answer = MsgBox("Are you sure you want to update?", vbYesNo + vbQuestion, "Update Record")
If Answer = vbYes Then
Cells(CurrentRow, 1).Value = Customer.Value
Cells(CurrentRow, 2).Value = CSONumber.Value
Cells(CurrentRow, 3).Value = JobNumber.Value
Cells(CurrentRow, 4).Value = PCWeldType.Value
Cells(CurrentRow, 5).Value = PCWeldGrind.Value
Cells(CurrentRow, 6).Value = PCFinish.Value
Cells(CurrentRow, 7).Value = NonPCWeld.Value
Cells(CurrentRow, 8).Value = NonPCGrind.Value
Cells(CurrentRow, 9).Value = NonPCFinish.Value
If BRReview.Value = True Then Cells(CurrentRow, 10).Value = "Yes"
If BRReview.Value = False Then Cells(CurrentRow, 10).Value = "No"
If BOMReview.Value = True Then Cells(CurrentRow, 11).Value = "Yes"
If BOMReview.Value = False Then Cells(CurrentRow, 11).Value = "No"
If DimReview.Value = True Then Cells(CurrentRow, 12).Value = "Yes"
If DimReview.Value = False Then Cells(CurrentRow, 12).Value = "No"
If WeldReview.Value = True Then Cells(CurrentRow, 13).Value = "Yes"
If WeldReview.Value = False Then Cells(CurrentRow, 13).Value = "No"
If Apperance.Value = True Then Cells(CurrentRow, 14).Value = "Yes"
If Apperance.Value = False Then Cells(CurrentRow, 14).Value = "No"
If Complete.Value = True Then Cells(CurrentRow, 15).Value = "Yes"
If Complete.Value = False Then Cells(CurrentRow, 15).Value = "No"
End If
End Sub
Private Sub OKButton_Click()
Dim EmptyRow As Long
'Make Sheet1 Active
Sheet1.Activate
'Determine Empty Row
EmptyRow = WorksheetFunction.CountA(Range("A:A")) + 1
'Transfer Information
Cells(EmptyRow, 1).Value = Customer.Value
Cells(EmptyRow, 2).Value = CSONumber.Value
Cells(EmptyRow, 3).Value = JobNumber.Value
Cells(EmptyRow, 4).Value = PCWeldType.Value
Cells(EmptyRow, 5).Value = PCWeldGrind.Value
Cells(EmptyRow, 6).Value = PCFinish.Value
Cells(EmptyRow, 7).Value = NonPCWeld.Value
Cells(EmptyRow, 8).Value = NonPCGrind.Value
Cells(EmptyRow, 9).Value = NonPCFinish.Value
If BRReview.Value = True Then Cells(EmptyRow, 10).Value = "Yes"
If BRReview.Value = False Then Cells(EmptyRow, 10).Value = "No"
If BOMReview.Value = True Then Cells(EmptyRow, 11).Value = "Yes"
If BOMReview.Value = False Then Cells(EmptyRow, 11).Value = "No"
If DimReview.Value = True Then Cells(EmptyRow, 12).Value = "Yes"
If DimReview.Value = False Then Cells(EmptyRow, 12).Value = "No"
If WeldReview.Value = True Then Cells(EmptyRow, 13).Value = "Yes"
If WeldReview.Value = False Then Cells(EmptyRow, 13).Value = "No"
If Apperance.Value = True Then Cells(EmptyRow, 14).Value = "Yes"
If Apperance.Value = False Then Cells(EmptyRow, 14).Value = "No"
If Complete.Value = True Then Cells(EmptyRow, 15).Value = "Yes"
If Complete.Value = False Then Cells(EmptyRow, 15).Value = "No"
'Sub Clearform()
Dim ctrl As MSForms.Control
For Each ctrl In Me.Controls
Select Case TypeName(ctrl)
Case "TextBox"
ctrl.Text = ""
Case "ComboBox"
ctrl.ListIndex = -1
Case "CheckBox"
ctrl.Value = False
End Select
Next
End Sub
Private Sub UserForm_Click()
Call UserForm1_Initialize
End Sub
Any Help is appreciated
thank you
Bill Williamson