Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

VB6 - Count number of selected cells in MSHFlexgrid1

Posted on 2014-10-02
9
Medium Priority
?
114 Views
Last Modified: 2014-10-05
Hi

I would like to know how i can count the number of cells i have selected in my MSHFlexgrid_1.

Normally, it would be a count of all the cells highlighted.

How can i do that?

Thanks again
0
Comment
Question by:Wilder1626
  • 4
  • 3
  • 2
9 Comments
 
LVL 49

Expert Comment

by:Martin Liss
ID: 40358497
Selected in one row?
0
 

Expert Comment

by:Sha
ID: 40358501
Hi Wilder,
can you post a snap shot of selection and the expected answer (count of cells)?
0
 
LVL 11

Author Comment

by:Wilder1626
ID: 40358507
It could be a selection per row or per column

example in picture below

Count cells when selected
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
LVL 49

Expert Comment

by:Martin Liss
ID: 40358522
Try this.
Dim MaxRow As Long
Dim MaxCol As Long
Dim FirstRow As Long
Dim FirstCol As Long
Dim intCount As Integer

With MSFlexGrid1
    FirstCol = .Col
    FirstRow = .Row
   MaxRow = .RowSel
   MaxCol = .ColSel

   Dim i, j As Integer

   For i = FirstRow To MaxRow
      For j = FirstCol To MaxCol
          intCount = intCount + 1
      Next
   Next
   
   MsgBox intCount
End With

Open in new window

0
 

Assisted Solution

by:Sha
Sha earned 300 total points
ID: 40358530
You can use ColSel, RowSel properties to select a specific region of the MSHFlexGrid programmatically, or to read the dimensions of an area that you selects into code.

The cursor is in the cell at Row, Col. The selection is the region between rows Row and RowSel and columns Col and ColSel. Note that RowSel may be above or below Row, and ColSel may be to the left or to the right of Col.

so you will have to do a calculation to determine the number of selected rows or cols by (higher value - lower value +1)

once you have no. of rows and no. of cols, u can multiply for the cells.

Whenever you set the Row and Col properties, RowSel and ColSel are automatically reset, so the cursor becomes the current selection.

even you can select a block of cells from code, you must first set the Row and Col properties, and then set RowSel and ColSel.

hope this helps.
Sha
0
 
LVL 11

Author Comment

by:Wilder1626
ID: 40360621
Thanks Sha

MartinLiss

when i'm using code from ID: 40358522, it works but only if i select from left to right or top to bottom.

But if i select from right to left or bottom to top, it does not count.

Would you know why?

Private Sub MSHFlexGrid_1_GotFocus()
'selected_cell
Dim MaxRow As Long
Dim MaxCol As Long
Dim FirstRow As Long
Dim FirstCol As Long
Dim intCount As Integer

With MSHFlexGrid_1
    FirstCol = .Col
    FirstRow = .Row
   MaxRow = .RowSel
   MaxCol = .ColSel

   Dim i, j As Integer

   For i = FirstRow To MaxRow
      For j = FirstCol To MaxCol
          intCount = intCount + 1
      Next
   Next
   
   selected_cell = intCount
End With

End Sub

Open in new window

0
 
LVL 49

Accepted Solution

by:
Martin Liss earned 1700 total points
ID: 40360658
Do it this way instead.

Dim MaxRow As Long
Dim MaxCol As Long
Dim FirstRow As Long
Dim FirstCol As Long
Dim intCount As Integer
Dim intRow As Integer
Dim intCol As Integer

With MSFlexGrid1
    If .RowSel > .Row Then
        FirstRow = .Row
        MaxRow = .RowSel
    Else
        FirstRow = .RowSel
        MaxRow = .Row
    End If
    If .ColSel > .Col Then
        FirstCol = .Col
        MaxCol = .ColSel
    Else
        FirstCol = .ColSel
        MaxCol = .Col
    End If
    
    For intRow = FirstRow To MaxRow
       For intCol = FirstCol To MaxCol
           intCount = intCount + 1
       Next
    Next
    
    MsgBox intCount
End With

Open in new window

0
 
LVL 11

Author Closing Comment

by:Wilder1626
ID: 40362596
Thanks again for your help. This is working great.

Sorry for the delay.
0
 
LVL 49

Expert Comment

by:Martin Liss
ID: 40362646
No problem. glad I could help.
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

I’ve seen a number of people looking for examples of how to access web services from VB6.  I’ve been using a test harness I built in VB6 (using many resources I found online) that I use for small projects to work out how to communicate with web serv…
Article by: Martin
Here are a few simple, working, games that you can use as-is or as the basis for your own games. Tic-Tac-Toe This is one of the simplest of all games.   The game allows for a choice of who goes first and keeps track of the number of wins for…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…
Suggested Courses

885 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