Solved

How can I user a countif formula in a Userform?

Posted on 2012-03-21
4
483 Views
Last Modified: 2012-03-21
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
Comment
Question by:user2073
  • 2
  • 2
4 Comments
 
LVL 85

Expert Comment

by:Rory Archibald
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

Open in new window

0
 

Author Comment

by:user2073
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

by:
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

Open in new window


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

Author Closing Comment

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

Featured Post

Comprehensive Backup Solutions for Microsoft

Acronis protects the complete Microsoft technology stack: Windows Server, Windows PC, laptop and Surface data; Microsoft business applications; Microsoft Hyper-V; Azure VMs; Microsoft Windows Server 2016; Microsoft Exchange 2016 and SQL Server 2016.

Question has a verified solution.

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

Deploying a Microsoft Access application in a Citrix environment is not difficult but takes a few steps. However, Citrix system people are often of little help, as they typically know next to nothing about Access. The script provided here will take …
Using Word 2013, I was experiencing some incredible lag when typing.  Here's what worked for me....
This Micro Tutorial demonstrates how to create Excel charts: column, area, line, bar, and scatter charts. Formatting tips are provided as well.
This Micro Tutorial will demonstrate how to create pivot charts out of a data set. I also added a drop-down menu which allows to choose from different categories in the data set and the chart will automatically update.

930 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now