Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 290
Default 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

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 9
Default 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


  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 290
Default 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

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 947
Default 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



  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 9
Default 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




Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
How do I use a countif function according to two other countif fu. Kirsty Excel Worksheet Functions 2 February 20th 06 11:44 AM
CountIf and Sum Help??? rstanger Excel Discussion (Misc queries) 0 October 4th 05 11:18 PM
edit this =COUNTIF(A1:F16,"*1-2*")+COUNTIF(A1:F16,"*2-1*") sctroy Excel Discussion (Misc queries) 2 September 25th 05 04:13 AM
COUNTIF or not to COUNTIF on a range in another sheet Ellie Excel Worksheet Functions 4 September 15th 05 10:06 PM
COUNTIF in one colum then COUNTIF in another...??? JonnieP Excel Worksheet Functions 3 February 22nd 05 02:55 PM


All times are GMT +1. The time now is 10:00 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"