Ho risolto; posto le Sub complete, magari può servire a qualcuno degli amici del forum:
codice:
Public Function IsArrayInitialized(ByVal arr As Variant) As Boolean
Dim dummy As Long
Err.Clear
If Not IsArray(arr) Then Err.Raise 5 Or 9 Or 10
On Error Resume Next
dummy = UBound(arr)
If Err.Number = 0 Then IsArrayInitialized = True
End Function
'------------------------------
Private Sub CmdCalcola_Click()
btAttiva = 0
Set itmX = LvDati.ListItems.Add()
itmX.SmallIcon = 1
If IsArrayInitialized(Piani) = True Then itmX.Text = Piani(CountPiani - 1) Else btAttiva = 1: Txt1(0).SetFocus: Call Verifica: Exit Sub
If IsArrayInitialized(TelaiX) = True Then itmX.SubItems(1) = TelaiX(CountTelX - 1) Else btAttiva = 1: Txt1(1).SetFocus: Call Verifica: Exit Sub
If IsArrayInitialized(TelaiY) = True Then itmX.SubItems(2) = TelaiY(CountTelY - 1) Else btAttiva = 1: Txt1(2).SetFocus: Call Verifica: Exit Sub
If IsArrayInitialized(RigidTelaiX) = True Then itmX.SubItems(3) = RigidTelaiX(CountRigX - 1) Else btAttiva = 1: Txt1(3).SetFocus: Call Verifica: Exit Sub
'.... .... ....
End Sub
'------------------------------------------------
Sub Verifica()
Dim i As Integer
If btAttiva = 1 Then
MsgBox "Impossibile procedere; inserire i dati mancanti !", vbQuestion, "Calcoli ..."
i = LvDati.SelectedItem.index
LvDati.ListItems.Remove (i)
LvDati.Refresh
End If
End Sub