Originariamente inviato da Grumpy
Non per essere pignoli, ma mi sembra che ci sia una certa contraddizione.

Ti avevo suggerito di vedere se il form cercato è presente nella collezione Forms.
Definisci una variabile oggetto di tipo Form
Dim oForm as Form
Fai un ciclo

For Each oForm in Forms
If oForm.Name = "frmGriglia" Then
...
End If
Next
Scusa ma sei tu che non hai capito...Io con "l'ho già fatto" intendevo dire che il form è già stato costruito ed quindi presente nella collezione Forms. Quindi nessuna contraddizione.

Ok,il codice non è male...fa più o meno la funzione che serve.Ma a me serve sapere se un determinato form è aperto mentre questo non funziona bene.

codice:
       Dim oForm As Form

        For Each oForm In Forms
        If oForm.Name = "frmGriglia" Then
            MsgBox "tutto ok"
        Else
            MsgBox "niente ok"
        End If
        Next
Facendo così mi da per OGNI form(ma non necessariamente frmgriglia) una msgbox con tutto ok.Mi spiego meglio. In questo caso mi conta due form (MDIForm, frmglia). Così lui una volta mi dice "niente ok",non trovando l'frmGriglia ed una vaolta "tutto ok" trovando appunto quanto cerca. Come posso ovviare questo problema??