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.
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è.