ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   VBA error Not calculating If then statement (https://www.excelbanter.com/excel-programming/368780-vba-error-not-calculating-if-then-statement.html)

marcie

VBA error Not calculating If then statement
 
See VBA below. I cannot figure out how to get this to work so that the after
entering in the Name, hours and pay rate for it to calculate the pay and
insert in my worksheet.

Private Sub CommandButtonOk_Click()
If TextBoxEmployeeName.Text = "" Then
MsgBox "You must enter a name."
Exit Sub
End If
NextBlankRow = Application.WorksheetFunction.CountA(Range("ColA") ) + 1
'MsgBox (NextBlankRow)
Cells(NextBlankRow, 1) = TextBoxEmployeeName.Text
Cells(NextBlankRow, 2) = TextBoxHours.Value
Cells(NextBlankRow, 3) = TextBoxPayRate.Value

If (Hours 40) Then
OverTime = Hours - 40
Pay = 40 * PayRate + OverTime * PayRate * 1.5
Else
Pay = 40 * PayRate
End If

TextBoxEmployeeName.Text = ""
TextBoxHours.Value = ""
TextBoxPayRate.Value = ""


TextBoxEmployeeName.SetFocus

End Sub


Tom Ogilvy

VBA error Not calculating If then statement
 
You haven't included any command that would do that. You also haven't
assigned any values to your variables.

Private Sub CommandButtonOk_Click()
Dim pay as Double, OverTime as Double
Dim PayRate as Double, Hours as Double
If TextBoxEmployeeName.Text = "" Then
MsgBox "You must enter a name."
Exit Sub
End If
NextBlankRow = Application.WorksheetFunction.CountA(Range("ColA") ) + 1
'MsgBox (NextBlankRow)
Cells(NextBlankRow, 1) = TextBoxEmployeeName.Text
Cells(NextBlankRow, 2) = TextBoxHours.Value
Cells(NextBlankRow, 3) = TextBoxPayRate.Value

PayRate = Cells(NextBlankRow,3).Value
Hours = Cells(NextBlankRow,2).Value

If (Hours 40) Then
OverTime = Hours - 40
Pay = 40 * PayRate + OverTime * PayRate * 1.5
Else
Pay = 40 * PayRate
End If

Cells(NextBlankRow,4).Value = Pay

TextBoxEmployeeName.Text = ""
TextBoxHours.Value = ""
TextBoxPayRate.Value = ""


TextBoxEmployeeName.SetFocus

End Sub

--
Regards,
Tom Ogilvy

"Marcie" wrote in message
...
See VBA below. I cannot figure out how to get this to work so that the
after
entering in the Name, hours and pay rate for it to calculate the pay and
insert in my worksheet.

Private Sub CommandButtonOk_Click()
If TextBoxEmployeeName.Text = "" Then
MsgBox "You must enter a name."
Exit Sub
End If
NextBlankRow = Application.WorksheetFunction.CountA(Range("ColA") ) + 1
'MsgBox (NextBlankRow)
Cells(NextBlankRow, 1) = TextBoxEmployeeName.Text
Cells(NextBlankRow, 2) = TextBoxHours.Value
Cells(NextBlankRow, 3) = TextBoxPayRate.Value

If (Hours 40) Then
OverTime = Hours - 40
Pay = 40 * PayRate + OverTime * PayRate * 1.5
Else
Pay = 40 * PayRate
End If

TextBoxEmployeeName.Text = ""
TextBoxHours.Value = ""
TextBoxPayRate.Value = ""


TextBoxEmployeeName.SetFocus

End Sub




Greg Wilson

VBA error Not calculating If then statement
 
Tom beat me to it. Further to Tom's code, I suggest setting the focus to
TextBoxEmployeeName if no name is selected:
If TextBoxEmployeeName.Text = "" Then
MsgBox "You must enter a name."
TextBoxEmployeeName.SetFocus
Exit Sub
End If

Greg

"Marcie" wrote:

See VBA below. I cannot figure out how to get this to work so that the after
entering in the Name, hours and pay rate for it to calculate the pay and
insert in my worksheet.

Private Sub CommandButtonOk_Click()
If TextBoxEmployeeName.Text = "" Then
MsgBox "You must enter a name."
Exit Sub
End If
NextBlankRow = Application.WorksheetFunction.CountA(Range("ColA") ) + 1
'MsgBox (NextBlankRow)
Cells(NextBlankRow, 1) = TextBoxEmployeeName.Text
Cells(NextBlankRow, 2) = TextBoxHours.Value
Cells(NextBlankRow, 3) = TextBoxPayRate.Value

If (Hours 40) Then
OverTime = Hours - 40
Pay = 40 * PayRate + OverTime * PayRate * 1.5
Else
Pay = 40 * PayRate
End If

TextBoxEmployeeName.Text = ""
TextBoxHours.Value = ""
TextBoxPayRate.Value = ""


TextBoxEmployeeName.SetFocus

End Sub


marcie

VBA error Not calculating If then statement
 
Tom,
Thank you for your help. It worked. I'm new at this and new I needed to
assign something somewhere but wasn't sure. Thanks again.
Marcie

"Tom Ogilvy" wrote:

You haven't included any command that would do that. You also haven't
assigned any values to your variables.

Private Sub CommandButtonOk_Click()
Dim pay as Double, OverTime as Double
Dim PayRate as Double, Hours as Double
If TextBoxEmployeeName.Text = "" Then
MsgBox "You must enter a name."
Exit Sub
End If
NextBlankRow = Application.WorksheetFunction.CountA(Range("ColA") ) + 1
'MsgBox (NextBlankRow)
Cells(NextBlankRow, 1) = TextBoxEmployeeName.Text
Cells(NextBlankRow, 2) = TextBoxHours.Value
Cells(NextBlankRow, 3) = TextBoxPayRate.Value

PayRate = Cells(NextBlankRow,3).Value
Hours = Cells(NextBlankRow,2).Value

If (Hours 40) Then
OverTime = Hours - 40
Pay = 40 * PayRate + OverTime * PayRate * 1.5
Else
Pay = 40 * PayRate
End If

Cells(NextBlankRow,4).Value = Pay

TextBoxEmployeeName.Text = ""
TextBoxHours.Value = ""
TextBoxPayRate.Value = ""


TextBoxEmployeeName.SetFocus

End Sub

--
Regards,
Tom Ogilvy

"Marcie" wrote in message
...
See VBA below. I cannot figure out how to get this to work so that the
after
entering in the Name, hours and pay rate for it to calculate the pay and
insert in my worksheet.

Private Sub CommandButtonOk_Click()
If TextBoxEmployeeName.Text = "" Then
MsgBox "You must enter a name."
Exit Sub
End If
NextBlankRow = Application.WorksheetFunction.CountA(Range("ColA") ) + 1
'MsgBox (NextBlankRow)
Cells(NextBlankRow, 1) = TextBoxEmployeeName.Text
Cells(NextBlankRow, 2) = TextBoxHours.Value
Cells(NextBlankRow, 3) = TextBoxPayRate.Value

If (Hours 40) Then
OverTime = Hours - 40
Pay = 40 * PayRate + OverTime * PayRate * 1.5
Else
Pay = 40 * PayRate
End If

TextBoxEmployeeName.Text = ""
TextBoxHours.Value = ""
TextBoxPayRate.Value = ""


TextBoxEmployeeName.SetFocus

End Sub






All times are GMT +1. The time now is 01:37 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com