Errore System.InvalidCastExeption

di il
1 risposte

Errore System.InvalidCastExeption

Buonasera
Sto cercando di adattare un codice scritto precedentemente su vba Excel cioè questo:
Private Sub cboRicerca_Change()

Me.cboRicerca = UCase(Me.cboRicerca)

Foglio1.Range("B5").Select

    Do Until ActiveCell = ""

If cboRicerca.Value = ActiveCell.Value & " " & ActiveCell.Offset(0, 1).Value Then
        
    Me.txtGradoCategoria = ActiveCell.Offset(0, -3).Value
    Me.txtCognome = ActiveCell.Value
    Me.txtNome = ActiveCell.Offset(0, 1).Value
    Me.txtMatricola = ActiveCell.Offset(0, 6).Value
    Me.txtComApp = ActiveCell.Offset(0, 11).Value
    Me.txtDataNascita = ActiveCell.Offset(0, 16).Value
    Me.txtLuogoNascita = ActiveCell.Offset(0, 19).Value
    Me.txtProvNascita = ActiveCell.Offset(0, 25).Value
    Me.txtDocumento = ActiveCell.Offset(0, 27).Value
    Me.txtNDoc = ActiveCell.Offset(0, 30).Value
    Me.txtRilasciato = ActiveCell.Offset(0, 33).Value
    Me.txtDataRilDoc = ActiveCell.Offset(0, 38).Value
    Me.txtDataScadDoc = ActiveCell.Offset(0, 41).Value
    Me.txtMotivo = ActiveCell.Offset(0, 44).Value
    Me.txtProtocollo = ActiveCell.Offset(0, 50).Value
    Me.txtDataProt = ActiveCell.Offset(0, 53).Value
    Me.txtComandoProt = ActiveCell.Offset(0, 56).Value
    Me.txtResidenza = ActiveCell.Offset(0, 61).Value
    Me.txtComune = ActiveCell.Offset(0, 69).Value
    Me.txtProvRes = ActiveCell.Offset(0, 75).Value
    Me.txtCF = ActiveCell.Offset(0, 77).Value
    Me.txtNTel = ActiveCell.Offset(0, 81).Value
    Exit Do
End If

    Loop

End Sub
Questo mi permetteva di caricare automaticamente le TextBox qualora il valore della ComboBox rispecchiasse Nome e Cognome della persona.

L'ho adattato così:
Imports Microsoft.Office.Interop
	 Imports Microsoft.Office.Interop.Excel

Public Class Accettazione
Private Sub cboRicerca_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboRicerca.SelectedIndexChanged
        Dim dbaAc As Excel.Application
        Dim xldba As Excel.Workbook
        Dim foglio As Excel.Worksheet
        Dim inizio As Excel.Range

        dbaAc = New Excel.Application
        xldba = dbaAc.Workbooks.Open("D:\OneDrive\Documenti\Light\Light_dba_Anagrafico")
        foglio = xldba.Sheets("Database Accettazione")
        inizio = foglio.Range("B5").Select()

        Do Until inizio Is ""

            If cboRicerca.ValueMember = inizio.Value & " " & inizio.Offset(0, 1).Value Then

                Me.txtGradoCat = inizio.Offset(0, -1).Text

                Exit Do
            End If
        Loop

    End Sub
End Class
ovviamente sarebbe da completare l'elenco delle TextBox, solo che provando mi restituisce l'errore in oggetto, come si evince dalla foto allegata.
Errore.jpg
Errore.jpg

System.InvalidCastException: 'Unable to cast object of type 'System.Boolean' to type 'Microsoft.Office.Interop.Excel.Range'.'

Cercando online da stamane non ho trovato granchè.

1 Risposte

  • Re: Errore System.InvalidCastExeption

    Togli il metodo Select(). Non serviva nemmeno su Excel...

    Il Loop è strutturato male... Lo escluderei in favore un .
Devi accedere o registrarti per scrivere nel forum
1 risposte