Newsgroup: it.comp.lang.visual-basic
Titolo: vba + msflexgrid e rows disabilitate

Ciao a tutti,
uso una MSFLEXGRID in vba di Project Professional.
Mi servirebbe disabilitare alcune righe in base ad un criterio calcolato 
in precedenza
If criterio Then
MSFLEXGRID.enabled = False
Else
....
End If
Purtoppo così mi disabilita tutte le righe...
Da notare che il listato che ho riportato, è contenuto in un ciclo for 
che scorre un recordset e popola le celle della grid.
Avete qualche suggerimento per favore?
Grazie


Per disabilitare cosa intendi?
Non ho capito cosa devi fare.
Popolare la MSFlexGrid solo in determinate
righe?
Quanto sotto si riferisce ad Excel e quindi
carico la MSFlexGrid dalle celle A1:C10
del Foglio1. Se la cella della colonna A
contiene un valore <= 100, salto la
riga della MSFlexGrid lasciandola vuota.
Private Sub UserForm_Activate()
    Dim lng As Long
    Dim Intestazione As String
    Intestazione = "<DatoA |<DatoB |>Progressivo "
    With Me.MSFlexGrid1
        .Cols = 3
        .FixedCols = 0
        .FixedRows = 1
        .Rows = 1
        .FormatString = Intestazione
    End With
    With Worksheets("Foglio1")
        For lng = 1 To 10
            If .Cells(lng, 1).Value >= 100 Then
                MSFlexGrid1.AddItem _
                    (.Cells(lng, 1).Value & vbTab _
                    & .Cells(lng, 2).Value & vbTab _
                    & .Cells(lng, 3).Value)
            Else
                MSFlexGrid1.AddItem _
                    ("" & vbTab & "" & vbTab & "")
            End If
        Next
    End With
End Sub
Questo *dovrebbe* fare la stessa cosa
recuperando i dati da un db di Access e
prendendo 3 campi specifici da riportare
nella MSFlexGrid(il campo discriminante
non viene considerato):
Private Sub UserForm_Activate()
On Error GoTo RigaErrore
    Dim lng As Long
    Dim Intestazione As String
    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Set cn = New ADODB.Connection
    Set rs = New ADODB.Recordset
    Intestazione = "<DatoA |<DatoB |>DatoC "
    With Me.MSFlexGrid1
        .Cols = 3
        .FixedCols = 0
        .FixedRows = 1
        .Rows = 1
        .FormatString = Intestazione
    End With
    With cn
        .CursorLocation = adUseClient
        .Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _
            ThisWorkbook.Path & "\dbExcelAccess.mdb"
    End With
    With rs
        .CursorLocation = adUseClient
        .Open "SELECT * FROM tblAnagrafica", _
            cn, adOpenKeyset, adLockOptimistic, adCmdText
        Do Until .EOF
            If .Fields(5).Value = "Bologna" Then
                MSFlexGrid1.AddItem _
                    (.Fields(0).Value & vbTab _
                    & .Fields(1).Value & vbTab _
                    & .Fields(2).Value)
            Else
                MSFlexGrid1.AddItem _
                    ("" & vbTab & "" & vbTab & "")
            End If
            .MoveNext
        Loop
    End With
RigaChiusura:
    Set rs = Nothing
    Set cn = Nothing
    Exit Sub
RigaErrore:
    MsgBox Err.Number & vbNewLine & Err.Description
    Resume RigaChiusura
End Sub
Prova un po', modificando i riferimenti con i tuoi.
-- 
---------------------------
Mauro Gamberini
http://www.riolab.org/