![]() |
Search Comment Text
Hi,
I'm trying to write a procedure that will run through a column of data and hide the rows that do not match a particular criteria. I'm fairly new at this and so I'm sure this is a very obvious problem! I have a column of data every cell of which has a comment. What I want to do is to enter a search term to search within the comments text......... The main difficulty I'm having is getting the active cell row and column values (which I've called "r" and "c" respectively). At the moment the ActiveCell.Row reads empty even when I can see the damn thing with a word in it and a comment attached! The x and y variables will be used as a message box at the end so I can see how many have been filtered. I'll also be putting in a dialogue box to capture the search term (although I might save that for another post unless anyone is feeling extra helpful). Anyway, thanks in advance John Sub SearchComments() Dim SearchTerm As String Dim rgCurrentCell As Range Dim x As Variant Dim y As Variant 'Check active cell at top of list Answer = MsgBox(Prompt:="Is cell at top of comments filled list?", Buttons:=vbYesNo + vbQuestion) If Answer = vbNo Then Exit Sub r = ActiveCell.Row c = ActiveCell.Column x = 0 'No. of visible rows y = 0 'No. of processed rows Set rgCurrentCell = Cells(r, c) Do If IsEmpty(Cells(r, c)) Then MsgBox "Current cell is empty" Exit Do End If If rgCurrentCell.Comment.Text = "music" Then x = x + 1 Else Rows(r).EntireRow.Hidden = True y = y + 1 r = r + 1 Loop End Sub |
Search Comment Text
Hi,
Here is another option for you: Sub SearchComments() Dim lngRow As Long Dim lngColumn As Long Dim lngVisible As Long Dim lngProcessed As Long ' If MsgBox("Is cell at top of comments filled list?", _ vbYesNo + vbQuestion, _ "Start Process") = vbNo Then Exit Sub ' lngColumn = ActiveCell.Column lngRow = ActiveCell.Row ' Do If Cells(lngRow, lngColumn).Comment.Text = "music" Then lngVisible = lngVisible + 1 Else Cells(lngRow, lngColumn).EntireRow.Hidden = True End If lngProcessed = lngProcessed + 1 lngRow = lngRow + 1 Loop Until IsEmpty(Cells(lngRow, lngColumn)) MsgBox "Processed" & vbTab & CStr(lngProcessed) & vbNewLine & _ "Visible" & vbTab & CStr(lngVisible), vbOKOnly, "Ready" End Sub Greeting, Wouter. "John" wrote in message ... Hi, I'm trying to write a procedure that will run through a column of data and hide the rows that do not match a particular criteria. I'm fairly new at this and so I'm sure this is a very obvious problem! I have a column of data every cell of which has a comment. What I want to do is to enter a search term to search within the comments text......... The main difficulty I'm having is getting the active cell row and column values (which I've called "r" and "c" respectively). At the moment the ActiveCell.Row reads empty even when I can see the damn thing with a word in it and a comment attached! The x and y variables will be used as a message box at the end so I can see how many have been filtered. I'll also be putting in a dialogue box to capture the search term (although I might save that for another post unless anyone is feeling extra helpful). Anyway, thanks in advance John Sub SearchComments() Dim SearchTerm As String Dim rgCurrentCell As Range Dim x As Variant Dim y As Variant 'Check active cell at top of list Answer = MsgBox(Prompt:="Is cell at top of comments filled list?", Buttons:=vbYesNo + vbQuestion) If Answer = vbNo Then Exit Sub r = ActiveCell.Row c = ActiveCell.Column x = 0 'No. of visible rows y = 0 'No. of processed rows Set rgCurrentCell = Cells(r, c) Do If IsEmpty(Cells(r, c)) Then MsgBox "Current cell is empty" Exit Do End If If rgCurrentCell.Comment.Text = "music" Then x = x + 1 Else Rows(r).EntireRow.Hidden = True y = y + 1 r = r + 1 Loop End Sub |
Search Comment Text
Dave and Wouter,
Thanks very much for this, it's worked perfectly. I've ended up taking suggestions from both of you. I was interested to see the Is Nothing method as I'd tried to use that but without success (now it works fine). Also using the Loop Until is something I hadn't thought of (you can see my basic knowledge level!). Is there a particular benefit to using the LCase function? I've looked up what it does, so does that mean that a search term of "music" would not pick up "Music", or is it just best practise? Thanks again for your help. Best regards John "John" wrote in message ... Hi, I'm trying to write a procedure that will run through a column of data and hide the rows that do not match a particular criteria. I'm fairly new at this and so I'm sure this is a very obvious problem! I have a column of data every cell of which has a comment. What I want to do is to enter a search term to search within the comments text......... The main difficulty I'm having is getting the active cell row and column values (which I've called "r" and "c" respectively). At the moment the ActiveCell.Row reads empty even when I can see the damn thing with a word in it and a comment attached! The x and y variables will be used as a message box at the end so I can see how many have been filtered. I'll also be putting in a dialogue box to capture the search term (although I might save that for another post unless anyone is feeling extra helpful). Anyway, thanks in advance John Sub SearchComments() Dim SearchTerm As String Dim rgCurrentCell As Range Dim x As Variant Dim y As Variant 'Check active cell at top of list Answer = MsgBox(Prompt:="Is cell at top of comments filled list?", Buttons:=vbYesNo + vbQuestion) If Answer = vbNo Then Exit Sub r = ActiveCell.Row c = ActiveCell.Column x = 0 'No. of visible rows y = 0 'No. of processed rows Set rgCurrentCell = Cells(r, c) Do If IsEmpty(Cells(r, c)) Then MsgBox "Current cell is empty" Exit Do End If If rgCurrentCell.Comment.Text = "music" Then x = x + 1 Else Rows(r).EntireRow.Hidden = True y = y + 1 r = r + 1 Loop End Sub |
All times are GMT +1. The time now is 01:52 AM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com