Solved

# How can I user a countif formula in a Userform?

Posted on 2012-03-21
504 Views
The following formula works in an excel worksheet with on problems. I would like to use something similiar if possible. Can anyone help me?

Private Sub TxtBx2_Change()
If TxtBx2 = "MD" Then
Me.TxtBx1.Value = Concatenate(Me.TxtBx2.Text, Right(Concatenate("000", CountIf(ReportList![A3:A200], "=" & TxtBx2.Value) + 1, 3)))
Else
If TxtBx2 = "SFC" Then
Me.TxtBx1.Value = Concatenate(Me.TxtBx2.Text, Right(Concatenate("000", CountIf(ReportList![A3:A200], "=" & TxtBx2.Value) + 1, 3)))
Else
If TxtBx2 = "DOM" Then
Me.TxtBx1.Value = Concatenate(Me.TxtBx2.Text, Right(Concatenate("000", CountIf(ReportList![A3:A200], "=" & TxtBx2.Value) + 1, 3)))
Else
End If
End Sub

My wish is to select a check box which then places the appropriate code in textbox2. This will then look for the highest number used for the selected section and adds 1 for help organise the Bin No. in sequence.

Any assistence will be appreciated.

THANKS
Report-Test.xlsm
0
Question by:user2073
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points
• 2
• 2

LVL 85

Expert Comment

ID: 37746170
That appears to equate to:

``````Private Sub TxtBx2_Change()
Select Case TxtBx2
case "MD", "SFC", "DOM"
Me.TxtBx1.Value = Me.TxtBx2.Text & Format(Application.CountIf(Sheets("ReportList").Range("A3:A200"), TxtBx2.Value) + 1, "000")
End Select
End Sub
``````
0

Author Comment

ID: 37746417
Thanks for the quick responce. Works great but also need the number to increase by 1 for the case selections each time a record is saved. eg.
1st MD record should be MD001
2nd MD record becomes MD002 and so on.
1st SFC record should be SFC001
2nd SFC record becomes SFC002 and so on.
I hope this provides a little more clarity. See the "RED" Practice Area for examples.

Thanks
0

LVL 85

Accepted Solution

Rory Archibald earned 500 total points
ID: 37746464
Ah - small change:
``````Private Sub TxtBx2_Change()
Select Case TxtBx2
Case "MD", "SFC", "DOM"
Me.TxtBx1.Value = Me.TxtBx2.Text & Format(Application.CountIf(Sheets("ReportList").Range("A3:A200"), TxtBx2.Value & "*") + 1, "000")
End Select
End Sub
``````

Note: you might want to use a combobox to provide the valid values for the MD, SFC etc.
0

Author Closing Comment

ID: 37746538
Great result many thanks for you assistence.
Keep up this fabulous service.
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

### Suggested Solutions

My experience with Windows 10 over a one year period and suggestions for smooth operation
Do you use a spreadsheet like Microsoft's Excel?  Have you ever wanted to link out to a non excel file on your computer or network drive?  This is the way I found to do it!
Learn how to create and modify your own paragraph styles in Microsoft Word. This can be helpful when wanting to make consistently referenced styles throughout a document or template.