• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 543
  • Last Modified:

VB6 - Trim before upload in MSHFlexgrid1

Hello all

I have this code that paste data from an excel sheet to my MSHFlexgrid1.

I would like to TRIM each text in MSHFlexgrid cell when data is in it.

How can i do this?

Thanks again for your help


Full code

    Dim ARRAYLINES As Variant    ' array with the lines
    Dim ARRAYCELLS As Variant    ' array with the cells of 1 line to count the cols needed
    Dim ARRAYLINESidx As Integer
    '§ put clipboard in textbox
    With Text2
        .Text = Clipboard.GetText
        If .Text = "" Then
            MsgBox "No data in clipboard"
            Exit Sub
        Else
            ARRAYLINES = Split(.Text, vbNewLine)
        End If
    End With
    '§ put textbox in grid
    If ARRAYLINES(0) = "" Then
        MsgBox "No data"
        Exit Sub
    Else
        ARRAYCELLS = Split(ARRAYLINES(0), vbTab)
        With MSHFlexGrid1
            .Cols = UBound(ARRAYCELLS) + 1
            .Rows = 0    '§ keep header
            For ARRAYLINESidx = LBound(ARRAYLINES) To UBound(ARRAYLINES) - 1
                .AddItem (ARRAYLINES(ARRAYLINESidx))
            Next
        End With
    End If
    '§ clear array
    ReDim ARRAYLINES(0)
    ReDim ARRAYCELLS(0)

Open in new window

0
Wilder1626
Asked:
Wilder1626
  • 7
  • 7
2 Solutions
 
Martin LissOlder than dirtCommented:
.AddItem Trim(ARRAYLINES(ARRAYLINESidx))
0
 
IrogSintaCommented:
How about .AddItem (Trim(ARRAYLINES(ARRAYLINESidx)))
0
 
Wilder1626Author Commented:
Hi again

I did try both option but still, it does not trim each cell.
.AddItem Trim(ARRAYLINES(ARRAYLINESidx))
.AddItem (Trim(ARRAYLINES(ARRAYLINESidx)))
0
The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

 
Martin LissOlder than dirtCommented:
Can you attach a sample WB that contains at least one of the cells that you are working with?
0
 
Wilder1626Author Commented:
Sure

If you upload from A1 to AA1 in the MSHFlexgrid using the code, you will see some cells not trim.

In excel, they are in yellow
trim-text-sample.xlsx
0
 
Martin LissOlder than dirtCommented:
All you have in that cell is "wer" with spaces before and after it so Trim should work just fine. What do you see after you trim it?
0
 
Wilder1626Author Commented:
i still see the spaces in the cell.

I did 2 row, one with spaces in the "WER" and one with no spaces.

spaces issue


        ARRAYCELLS = Split(ARRAYLINES(0), vbTab)
        With MSHFlexGrid1
            .Cols = UBound(ARRAYCELLS) + 1
            .Rows = 0    '§ keep header
            For ARRAYLINESidx = LBound(ARRAYLINES) To UBound(ARRAYLINES) - 1
                '.AddItem (ARRAYLINES(ARRAYLINESidx))
                .AddItem (Trim(ARRAYLINES(ARRAYLINESidx)))
            Next
        End With
    End If
    '§ clear array
    ReDim ARRAYLINES(0)
    ReDim ARRAYCELLS(0)

Open in new window

0
 
Martin LissOlder than dirtCommented:
One thing you might want to do is to read my article on debugging so that you can determine what's in the array at various points in the code.
0
 
Martin LissOlder than dirtCommented:
Are you saying that you see spaces in line 2? If so where?

Also (and this isn't the problem), you definitely don't need the outside parentheses around Trim. And unless there's code after line 30 where you want to reuse the two arrays, there's no need to Redim them since VB6 will initialize them the next time the code is run.

One thing to try.

Dim ARRAYLINES() As String
Dim ARRAYCELLS() As String
0
 
Wilder1626Author Commented:
thanks again for your help.

What i did it to trafer the row in multiple text box and all textbox are trim

Thanks again
0
 
Wilder1626Author Commented:
I tried by updating:
Dim ARRAYLINES() As String
Dim ARRAYCELLS() As String

But still same result.

I have also deleted:
  '§ clear array
    ReDim ARRAYLINES(0)
    ReDim ARRAYCELLS(0)


And also updated:
.AddItem Trim(ARRAYLINES(ARRAYLINESidx))
0
 
Martin LissOlder than dirtCommented:
What was the problem?
0
 
Wilder1626Author Commented:
well there is no error but it's just does not trim the text once in the grid.
0
 
Wilder1626Author Commented:
After a good night of sleep, i decided to do it the easy way. Probably not the best way.
I put the code bellow after uploading the data in my MSHFlexgrid.
Dim lngRow As Long
Dim lngCol As Long

For lngRow = 0 To MSHFlexGrid1.Rows - 1
    For lngCol = 0 To MSHFlexGrid1.Cols - 1
        MSHFlexGrid1.TextMatrix(lngRow, lngCol) = Trim(MSHFlexGrid1.TextMatrix(lngRow, lngCol))
    Next
Next

Open in new window


Thanks again for your help
0
 
Martin LissOlder than dirtCommented:
You're welcome and I'm glad I was able to help.

Marty - MVP 2009 to 2012
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

  • 7
  • 7
Tackle projects and never again get stuck behind a technical roadblock.
Join Now