Buongiorno a tutti,
Ho la necessità di visualizzare dei dati che stanno all'interno di sheet1 (colonne da A:E, righe dalla numero 2 e via via) nelle textbox.
Io inserisco tramite userform dei dati che vanno a popolare il database in sheet1 quindi le righe possono variare.
Questo codice serve a visualizzare i dati e se una data parola non è presente nel database mi esce l'avviso:
Private Sub mCaricaListBox(ByVal s As String)
Dim lRiga As Long
Dim lng As Long, r As Long
Dim sh As Worksheet
Dim elenco As Variant
Dim myr As Range
Dim lista
Dim mRow As Variant
Dim i, c
Dim no
Dim parola As String
Set sh = Sheet1
With sh
lRiga = .Range("B" & .Rows.Count).End(xlUp).Row
End With
With Me.ListBox1
.Clear
If s = "CaricaDati" Then
For lng = 2 To lRiga
.AddItem (sh.Range("B" & lng).Value)
Next
ElseIf s = "FiltraDati" Then
sh.Cells(1, "AA").CurrentRegion.Clear
elenco = sh.Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To elenco
mRow = Application.Transpose(Application.Transpose(Range("A" & i & ":E" & i)))
If InStr(Join(mRow, ""), Me.TextBox1.Value) > 0 Then
r = r + 1
sh.Cells(i, 1).Resize(, 5).Copy sh.Cells(r, "AA")
End If
Next i
If r = 0 Then
parola = TextBox1.Value
MsgBox "The following term(s) '" & parola & " is/are not present in the database.", vbExclamation, "Attenzione"
Exit Sub
Else
Set myr = sh.Cells(1, "AA").CurrentRegion
.ColumnCount = myr.Columns.Count
lista = myr
End If
Set myr = sh.Cells(1, "AA").CurrentRegion
.Clear
.ColumnCount = myr.Columns.Count
lista = myr
.List = lista
End If
End With
End Sub
nella textbox della ricerca parziale del testo ho questo codice:
Private Sub TextBox1_Change()
'UserForm1.ListBox1.Visible = True
Call mCaricaListBox("FiltraDati")
End Sub
e nella userform ho quest'altro codice (serve a caricare i dati dal database):
Private Sub UserForm_Initialize()
Dim wbFrom As Workbook, wbTo As Workbook, wkFrom As Worksheet
Dim Righe As Long, Colonne As Long, r As Long, c As Long, arrLstBox() As Variant
Dim rng As Range
Set wbFrom = Workbooks("Prova Sidra.xlsm")
Set wbTo = ThisWorkbook
Set wkFrom = wbFrom.Sheets("Sheet1")
With wkFrom.Range("A1").CurrentRegion
Righe = .Rows.Count - 1
Colonne = .Columns.Count
Set rng = .Offset(1, 0).Resize(Righe, Colonne)
End With
Righe = wkFrom.Range("A2").CurrentRegion.Rows.Count - 1
Colonne = wkFrom.Range("A2").CurrentRegion.Columns.Count
Me.ListBox1.ColumnCount = 5
ReDim arrLstBox(1 To Righe, 1 To Colonne)
For r = 1 To Righe
For c = 1 To Colonne
arrLstBox(r, c) = wkFrom.Cells(r + 1, c)
Next c
Next rMe.ListBox1.List() = (arrLstBox)
End Sub
Io vorrei conservare la textbox per la ricerca parziale del testo MA vorrei visualizzare i dati nelle textbox.
Ad esempio:
Textbox1 scrivo: ciao
(ciao è nella riga 2, colonna B)
la colonna A2 nella textbox 2 --> (altro dato che è presente nel database della colonna e riga corrispondente)
La colonna B2 nella textbox 3 --> (ciao)
La colonna C2 nella textbox 4 --> (altro dato che è presente nel database della colonna e riga corrispondente)
La colonna D2 nella textbox 5 --> (altro dato che è presente nel database della colonna e riga corrispondente)
La colonna E2 nella textbox 6. --> (altro dato che è presente nel database della colonna e riga corrispondente)
Textbox1 scrivo: zz9z0
(zz9z0 è nella riga 10, colonna A)
la colonna A10 nella textbox 2 --> (zz9z0)
La colonna B10 nella textbox 3 --> (altro dato che è presente nel database della colonna e riga corrispondente)
La colonna C10 nella textbox 4 --> (altro dato che è presente nel database della colonna e riga corrispondente)
La colonna D10 nella textbox 5 --> (altro dato che è presente nel database della colonna e riga corrispondente)
La colonna E10 nella textbox 6. --> (altro dato che è presente nel database della colonna e riga corrispondente)
Textbox1 scrivo: ggdde
(ggdde è nella riga 5, colonna A)
la colonna A5 nella textbox 2 --> (ggdde)
La colonna B5 nella textbox 3 --> (altro dato che è presente nel database della colonna e riga corrispondente)
La colonna C5 nella textbox 4 --> (altro dato che è presente nel database della colonna e riga corrispondente)
La colonna D5 nella textbox 5 --> (altro dato che è presente nel database della colonna e riga corrispondente)
La colonna E5 nella textbox 6. --> (altro dato che è presente nel database della colonna e riga corrispondente)
Quindi nelle textbox vorrei mi visualizzasse la riga del dato corrispondente che scriverò nella textbox che contiene il codice per la ricerca parziale del testo.
Potete aiutarmi gentilmente?
Grazie mille per l'aiuto e se serve sapere altro, non esitate a chiedere.
Sol39