Msflexgrid Vba [TESTED]

| Property | Recommended Value | Description | |----------|------------------|-------------| | Name | fgData | Logical naming | | Cols | 5 | Number of columns | | Rows | 10 | Number of rows | | FixedCols | 1 | Fixed (non-scrollable) left column(s) | | FixedRows | 1 | Fixed header row(s) | | AllowBigSelection | False | Select only one cell, not entire row/col | | SelectionMode | flexSelectionByCell | Select individual cells | | ScrollBars | flexScrollBarBoth | Both vertical & horizontal | | Property | Purpose | |----------|---------| | .TextMatrix(row, col) | Get/set cell text (preferred over .Text ) | | .Row , .Col | Current cell position | | .CellFontBold , .CellBackColor | Format current cell | | .MergeCells , .MergeRow(row) | Merge adjacent identical cells | | .WordWrap | Wrap text within cell | | .ColWidth(col) | Width in twips (1440 twips = 1 inch) | | .RowHeight(row) | Height in twips | | .ColAlignment(col) | Alignment (0=left,1=right,2=center) | | .BackColor , .ForeColor | Overall colors | 4. Essential Code Examples 4.1 Initialize Grid (Headers & Columns) Private Sub UserForm_Initialize() Dim i As Integer With Me.fgData .Cols = 5 .Rows = 2 ' Start with 1 data row below header .FixedRows = 1 .FixedCols = 1 ' Set headers using TextMatrix .TextMatrix(0, 0) = "ID" .TextMatrix(0, 1) = "Name" .TextMatrix(0, 2) = "Department" .TextMatrix(0, 3) = "Salary" .TextMatrix(0, 4) = "Active" ' Column widths (twips: 1440 = 1 inch) .ColWidth(0) = 720 ' 0.5 inch .ColWidth(1) = 1800 .ColWidth(2) = 1800 .ColWidth(3) = 1200 .ColWidth(4) = 800 ' Align headers (center) For i = 0 To .Cols - 1 .Row = 0 .Col = i .CellAlignment = 4 ' 4 = center Next i End With End Sub 4.2 Populate Data from Excel Range Sub LoadFromExcel() Dim ws As Worksheet Dim rng As Range Dim i As Long, j As Integer Set ws = ThisWorkbook.Sheets("Data") Set rng = ws.Range("A1").CurrentRegion

Private Sub SetupGrid() With Me.fgData .Cols = 4 .Rows = 2 .FixedRows = 1 .TextMatrix(0, 0) = "Product" .TextMatrix(0, 1) = "Qty" .TextMatrix(0, 2) = "Price" .TextMatrix(0, 3) = "Total" .ColWidth(0) = 2000 .ColWidth(1) = 800 .ColWidth(2) = 1200 .ColWidth(3) = 1500 End With End Sub msflexgrid vba

With Me.fgData .Rows = rng.Rows.Count + 1 ' +1 for header if needed .Cols = rng.Columns.Count For i = 1 To rng.Rows.Count For j = 1 To rng.Columns.Count .TextMatrix(i, j - 1) = rng.Cells(i, j).Value Next j Next i End With End Sub Sub AddRow(ID As String, Name As String, Dept As String, Salary As Double, Active As Boolean) With Me.fgData .Rows = .Rows + 1 Dim newRow As Integer newRow = .Rows - 1 .TextMatrix(newRow, 0) = ID .TextMatrix(newRow, 1) = Name .TextMatrix(newRow, 2) = Dept .TextMatrix(newRow, 3) = Format(Salary, "$#,##0.00") .TextMatrix(newRow, 4) = IIf(Active, "Yes", "No") End With End Sub 4.4 Formatting Cells Conditionally Sub ApplyConditionalFormatting() Dim r As Integer, c As Integer Dim salaryVal As Double With Me.fgData For r = 1 To .Rows - 1 ' Check salary column (index 3) salaryVal = Val(.TextMatrix(r, 3)) .Row = r .Col = 3 If salaryVal > 75000 Then .CellBackColor = vbGreen .CellForeColor = vbWhite ElseIf salaryVal < 40000 Then .CellBackColor = vbRed .CellForeColor = vbBlack End If Next r End With End Sub 4.5 Get Selected Cell / Row Private Sub fgData_Click() Dim selectedRow As Integer Dim selectedCol As Integer With Me.fgData selectedRow = .Row selectedCol = .Col ' Avoid header row If selectedRow > 0 Then MsgBox "Selected: " & .TextMatrix(selectedRow, 1) & vbCrLf & _ "Salary: " & .TextMatrix(selectedRow, 3) End If End With End Sub 4.6 Delete Selected Row Sub DeleteCurrentRow() Dim rowToDelete As Integer rowToDelete = Me.fgData.Row | Property | Recommended Value | Description |

Me.fgData.RemoveItem rowToDelete End Sub : RemoveItem is available in MSFlexGrid 6.0. For older versions, shift rows manually. 4.7 Sort by Column Private Sub fgData_HeadClick(ByVal Col As Integer) ' Sorts when user clicks a header With Me.fgData .Sort = flexSortGenericAscending .Col = Col .Row = 0 ' Optionally store sort column for toggle End With End Sub 5. Common Gotchas & Solutions | Problem | Solution | |---------|----------| | Text not wrapping | Set .WordWrap = True and ensure .ColWidth is fixed. | | Scrollbar not showing | Increase .Rows or .Cols beyond visible area. | | Slow with many rows | Disable redraw: .Redraw = False → load data → .Redraw = True | | Double-click not firing | Use DblClick event, not Click . | | Can't edit cells | MSFlexGrid is read-only by design. Use a TextBox overlay for editing. | | Row height too small | Set .RowHeightMin property or individual .RowHeight(row) . | 6. Advanced: In-Cell Editing (TextBox Overlay) Since MSFlexGrid doesn't support native editing, use a hidden TextBox: | | Slow with many rows | Disable redraw:

If rowToDelete >= Me.fgData.Rows Then Exit Sub

Upload a Save

Saves must be created by JKSM for the 3DS.

Please make sure you select a .zip file to upload.

How to upload saves

  1. Launch JKSM from the homebrew launcher or the home menu.
  2. In JKSM, select your game (either Cartridge or SD/CIA)
  3. Choose "Save Data Options", then "Export Save"
  4. Select "New", then enter a name.
  5. Press "A" when finished.
  6. Power off your 3DS and insert your SD card into your computer.
  7. Open your SD card, then open the "JKSV" folder.
  8. Open the "Saves" folder, then create a zip file with the folder you created.
    • On windows, you can right click and select "Send to compressed folder (zip)".
    • On OSX, you can right click and select "Compress".
  9. Click "Choose file" above, then select the zip you created.
  10. Fill out the form and click "submit". You did it!

How to use saves

  1. Back up your current save using JKSM.
  2. Launch JKSM from the homebrew launcher or the home menu.
  3. Unzip the downloaded save file to your computer. Remember where you put it.
  4. Copy the unzipped folder to your 3DS. Be careful another folder with the same name doesn't exist.
  5. Don't open any files inside the zip.
  6. In JKSM, select your game (either Cartridge or SD/CIA)
  7. Choose "Save Data Options", then "Browse SD for Data"
  8. Open the save folder you copied, and press "Y".
  9. Exit JKSM and open your game. You did it.