ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   countif in vba (https://www.excelbanter.com/excel-programming/360820-countif-vba.html)

Duncan[_5_]

countif in vba
 
Hi all,

Im using this from a previous sub and wanting to modify it to count
cells that have a set value, i got this loop from a helpful person on
here so i am having trouble getting my head around it enough to modify
it!.

Basically it is looking for non-hidden as the range is autofiltered, i
will have loads on entries and i want to split them into amounts in my
textboxes depending on their area.

(this is what i already have below)

With Worksheets("Sheet1")
Lastrow2 = .Cells(Rows.Count, "H").End(xlUp).Row
s2 = 0
For j = 2 To Lastrow2
If .Rows(j).Hidden = False Then s2 = s2 + 1
Next j
End With
textbox1.Value = s2

I want to modify this so it says if column F = "Department1" then count
it, then I can replicate this 4 times for each differant department and
putting the amount in differant textboxes.

Can anybody help me?

Many thanks in advance

Duncan


Quiller38

countif in vba
 
You need a new block of logic contained within the if statement (assuming
you still only want to count the non hidden entries):

v1 = 0
v2 = 0
v3 = 0
v4 = 0
For j = 2 to Lastrow2
vDept = Range("F"&J).value
If .Rows(j).Hidden = False Then
Select Case vdept
Case "Department1"
v1 = v1 + 1
Case "Department2"
v2 = v2 + 1

{... etc ...}

End Select
End If
Next J

"Duncan" wrote:

Hi all,

Im using this from a previous sub and wanting to modify it to count
cells that have a set value, i got this loop from a helpful person on
here so i am having trouble getting my head around it enough to modify
it!.

Basically it is looking for non-hidden as the range is autofiltered, i
will have loads on entries and i want to split them into amounts in my
textboxes depending on their area.

(this is what i already have below)

With Worksheets("Sheet1")
Lastrow2 = .Cells(Rows.Count, "H").End(xlUp).Row
s2 = 0
For j = 2 To Lastrow2
If .Rows(j).Hidden = False Then s2 = s2 + 1
Next j
End With
textbox1.Value = s2

I want to modify this so it says if column F = "Department1" then count
it, then I can replicate this 4 times for each differant department and
putting the amount in differant textboxes.

Can anybody help me?

Many thanks in advance

Duncan



Duncan[_5_]

countif in vba
 
Quiller,

Many thanks, this is brilliant, I didnt know you could use select case
within a with and after a then, im learning all of this still!

Many thanks again. (ill post it below)

Duncan

With Worksheets("Sheet1")
Lastrow2 = .Cells(Rows.Count, "H").End(xlUp).Row
v1 = 0
v2 = 0
v3 = 0
v4 = 0
For J = 2 To Lastrow2
vdept = Range("F" & J).Value
If .Rows(J).Hidden = False Then
Select Case vdept
Case "dept1"
v1 = v1 + 1
Case "dept2"
v2 = v2 + 1
Case "dept3"
v3 = v3 + 1
Case "dept4"
v4 = v4 + 1
End Select
End If
Next J
End With
dept1text.Value = v1
dept2text.Value = v2
dept3text.Value = v3
dept4text.Value = v4


Dana DeLouis

countif in vba
 
Hi. This isn't complete, but it may give you some ideas in the future...

Sub Demo()
Dim Cell As Range
Dim Rng As Range
Dim d1, d2

Set Rng = Range("_FilterDatabase")
Set Rng = Intersect(Rng, Columns("F:F"))
Set Rng = Rng.SpecialCells(xlCellTypeVisible)

For Each Cell In Rng.Cells
Select Case Cell.Value
Case "Dept1": d1 = d1 + 1
Case "Dept2": d2 = d2 + 1
End Select
Next Cell
End Sub

--
HTH. :)
Dana DeLouis
Windows XP, Office 2003


"Duncan" wrote in message
oups.com...
Quiller,

Many thanks, this is brilliant, I didnt know you could use select case
within a with and after a then, im learning all of this still!

Many thanks again. (ill post it below)

Duncan

With Worksheets("Sheet1")
Lastrow2 = .Cells(Rows.Count, "H").End(xlUp).Row
v1 = 0
v2 = 0
v3 = 0
v4 = 0
For J = 2 To Lastrow2
vdept = Range("F" & J).Value
If .Rows(J).Hidden = False Then
Select Case vdept
Case "dept1"
v1 = v1 + 1
Case "dept2"
v2 = v2 + 1
Case "dept3"
v3 = v3 + 1
Case "dept4"
v4 = v4 + 1
End Select
End If
Next J
End With
dept1text.Value = v1
dept2text.Value = v2
dept3text.Value = v3
dept4text.Value = v4




Quiller38

countif in vba
 
I am impressed, very few lines !

"Dana DeLouis" wrote:

Hi. This isn't complete, but it may give you some ideas in the future...

Sub Demo()
Dim Cell As Range
Dim Rng As Range
Dim d1, d2

Set Rng = Range("_FilterDatabase")
Set Rng = Intersect(Rng, Columns("F:F"))
Set Rng = Rng.SpecialCells(xlCellTypeVisible)

For Each Cell In Rng.Cells
Select Case Cell.Value
Case "Dept1": d1 = d1 + 1
Case "Dept2": d2 = d2 + 1
End Select
Next Cell
End Sub

--
HTH. :)
Dana DeLouis
Windows XP, Office 2003


"Duncan" wrote in message
oups.com...
Quiller,

Many thanks, this is brilliant, I didnt know you could use select case
within a with and after a then, im learning all of this still!

Many thanks again. (ill post it below)

Duncan

With Worksheets("Sheet1")
Lastrow2 = .Cells(Rows.Count, "H").End(xlUp).Row
v1 = 0
v2 = 0
v3 = 0
v4 = 0
For J = 2 To Lastrow2
vdept = Range("F" & J).Value
If .Rows(J).Hidden = False Then
Select Case vdept
Case "dept1"
v1 = v1 + 1
Case "dept2"
v2 = v2 + 1
Case "dept3"
v3 = v3 + 1
Case "dept4"
v4 = v4 + 1
End Select
End If
Next J
End With
dept1text.Value = v1
dept2text.Value = v2
dept3text.Value = v3
dept4text.Value = v4






All times are GMT +1. The time now is 08:03 AM.

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