Pagina 1 di 1

[Risolto] Filtro item listbox

Inviato: martedì 21 febbraio 2017, 21:38
da Luka2017
Buonasera
C'è una macro che tramite textbox filtro i dati di una listbox collegata ad un foglio calc, dove gli item sono collegati ad altri dati riga per riga.
Grazie

Re: Filtro item listbox

Inviato: mercoledì 22 febbraio 2017, 7:38
da patel
Le macro non si trovano già pronte, vanno costruite apposta in base alle necessità, quindi occorre un file di esempio corredato di spiegazioni dettagliate

Re: Filtro item listbox

Inviato: venerdì 24 febbraio 2017, 12:24
da Luka2017
Ciao ho creato un file di esempio e se gentilmente mi potreste aiutare a trovare la macro per scrivere sul textbox "cerca" quello che devo filtrare nella listbox e cliccando nella listbox mi da il riferimento giusto.

Grazie

Re: Filtro item listbox

Inviato: venerdì 24 febbraio 2017, 18:34
da patel
Non ho capito, potresti spiegare meglio ?

Re: Filtro item listbox

Inviato: venerdì 24 febbraio 2017, 18:47
da Luka2017
Ciao
Nel foglio calc ho un elenco che scrivo, dove riga per riga è presente un cliente diverso. Nel dialog è presente un listbox con l'elenco dei clienti salvati sul foglio. Cliccando ogni item del listbox appaiono nelle varie textbox i dati riferiti ad ogni item. Il mio problema è che non riesco a trovare una macro, che tramite un textbox scrivo il cognome o il nome del cliente ed in automatico la listbox mi fa apparire quello che scrivo nella textbox e cliccando l'item mi appaiono nelle altre textbox i dati come riportati nel foglio.

Re: Filtro item listbox

Inviato: venerdì 24 febbraio 2017, 21:06
da XLUPOGRIGIOX
Ciao,scusa ma vorresti che la textbox facesse quello che fa già la listbox?

Re: Filtro item listbox

Inviato: sabato 25 febbraio 2017, 8:20
da patel
lupo, la lisbox c'è già, forse volevi dire quello che fa già la ComboBox, facilmente ottenibile così

Codice: Seleziona tutto

   For i =0 To 7
      Percorso = Sheet.getCellByPosition(0, i).String
      oDialogo1.getControl("ComboBox1").addItem(Percorso, oDialogo1.getControl("ComboBox1").ItemCount)
   next i

Re: Filtro item listbox

Inviato: sabato 25 febbraio 2017, 9:25
da Luka2017
Grazie per le risposte ma il mio quesito è che nella listbox appaiono comunque i clienti ma tramite la textbox scrivo un cognome e nella listbox appaiono in base a quello che ho scritto nella textbox, e cliccando gli item filtrati nella listbox mi appaiono corretti i dati nelle altre textbox.

Re: Filtro item listbox

Inviato: sabato 25 febbraio 2017, 9:28
da Gaetanopr
A mio avviso è superfluo se ci fai caso posizionandoti sulla listbox e iniziando a digitare il cognome il cursore si posiziona sulla scelta effettuata da solo

Re: Filtro item listbox

Inviato: sabato 25 febbraio 2017, 9:32
da Luka2017
Si lo so ma siccome sono tanti gli item e bisogna scrivere velocemente allora siccome se ci fosse questa soluzione sarei grato.

Re: Filtro item listbox

Inviato: sabato 25 febbraio 2017, 9:45
da Gaetanopr
Va bene in questo modo? così appaiono solo quelli che digiti
Però in questo modo devi modificare la macro che riporta i dati nelle restanti textbox in quanto il selectedItemPos non corrisponde più ai dati disposti sul foglio

Re: Filtro item listbox

Inviato: sabato 25 febbraio 2017, 9:51
da Luka2017
Tra un po' ci provo e vi faccio sapere. Grazie mille intanto

Re: Filtro item listbox

Inviato: sabato 25 febbraio 2017, 11:16
da patel
buona idea Gaetano, forse meglio così

Codice: Seleziona tutto

Dim Sheet
Dim oDialogo1
Dim oComboBox
Dim oTextBox

Sub Trasf_Bc
  Dim oComboBox as object
DialogLibraries.LoadLibrary("Standard")
oDialogo1 = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
oDialogo1.Title = "Trasferimento Prodotti"
oDialogo1.getControl("TextField1").Enable = TRUE 
oDialogo1.getControl("TextField2").Enable = FALSE 
oDialogo1.getControl("TextField3").Enable = FALSE
oDialogo1.getControl("TextField4").Enable = FALSE
oDialogo1.getControl("TextField5").Enable = FALSE
oDialogo1.getControl("TextField6").Enable = FALSE
oComboBox = oDialogo1.getControl("ListBox1")
oTextBox = oDialogo1.getControl("TextField1")
Call Option_bc ' <<<<<<<<
oDialogo1.Execute()
oDialogo1.dispose()
End Sub

Sub Option_bc 
Dim oCell
 Dim a As String
  Dim b As String
  Dim oComboBox 
oComboBox = oDialogo1.getControl("ListBox1")
Sheet = ThisComponent.Sheets(0)
oComboBox.removeItems(0,oComboBox.getItemCount())
Daric = UCase(oTextBox.Text)
Lungh = Len(Daric)
For i = 1 to 100
 oCell = Sheet.getCellByPosition(0, i) 
 a = oCell.String
  iF Lungh > 0 Then
    if UCase(Left(Sheet.getCellByPosition(0, i).String, Lungh)) = Daric then
       oComboBox.addItem(a, oDialogo1.getControl("ListBox1").ItemCount)
    End If
  else ' <<<<<<<<
    oComboBox.addItem(a, oDialogo1.getControl("ListBox1").ItemCount) ' <<<<<<<<
  End If  
next i
End sub

Sub List_Ordine
Dim Sheet
Dim MyCounter
Sheet = ThisComponent.Sheets(0)
MyCounter = oDialogo1.getControl("ListBox1").selectedItemPos + 2
oDialogo1.getControl("TextField2").text = Sheet.getCellRangeByName("A" & MyCounter).String
oDialogo1.getControl("TextField3").text = Sheet.getCellRangeByName("B" & MyCounter).String 
oDialogo1.getControl("TextField4").text = Sheet.getCellRangeByName("C" & MyCounter).String 
oDialogo1.getControl("TextField5").text = Sheet.getCellRangeByName("D" & MyCounter).String
oDialogo1.getControl("TextField6").text = Sheet.getCellRangeByName("E" & MyCounter).String
End Sub
Gaetanopr ha scritto:Però in questo modo devi modificare la macro che riporta i dati nelle restanti textbox in quanto il selectedItemPos non corrisponde più ai dati disposti sul foglio
però non basta più inserire solo il cognome nel listbox

Re: Filtro item listbox

Inviato: sabato 25 febbraio 2017, 11:42
da Luka2017
Infatti quello che ho trovato complicazione è proprio sul selecteditempos. Come posso risolvere?

Re: Filtro item listbox

Inviato: sabato 25 febbraio 2017, 11:45
da Gaetanopr
patel ha scritto:buona idea Gaetano, forse meglio così
Patel dipende dall'esigenza di luka, pure io penso sia meglio far comparire tutto ma dal suo messaggio non lo capisco bene
Luka2017 ha scritto:ma il mio quesito è che nella listbox appaiono comunque i clienti ma tramite la textbox scrivo un cognome e nella listbox appaiono in base a quello che ho scritto nella textbox, e cliccando gli item filtrati nella listbox mi appaiono corretti i dati nelle a
Comunque basta remmare questa parte della macro

Codice: Seleziona tutto

iF Lungh > 0 Then
senza aggiungere else per funzinare la macro in tal senso.
Ho modificato la macro per far compilare correttamente anche le altre textbox

Re: Filtro item listbox

Inviato: sabato 25 febbraio 2017, 11:58
da Luka2017
Grazie mille siete degli Amici

Re: Filtro item listbox

Inviato: sabato 25 febbraio 2017, 11:59
da patel
risolto in modo molto semplice, complimenti :bravo:

Re: Filtro item listbox

Inviato: sabato 25 febbraio 2017, 12:02
da Gaetanopr
:super:

Re: Filtro item listbox

Inviato: sabato 25 febbraio 2017, 12:03
da Luka2017
Lo so che questo non è un argomento ma ho visto che siete molto disponibili. Io non riesco ha trovare una macro per mandare le email senza client di un allegato dove i percorsi e l'email la scrivo nel foglio calc, ovviamente configurandolo con i miei dati SMTP user e password per poterla inviare. Mi potreste aiutare anche in questo?

Re: Filtro item listbox

Inviato: sabato 25 febbraio 2017, 15:59
da patel

[Risolto] Re: Filtro item listbox

Inviato: martedì 26 aprile 2022, 12:31
da Luka2017
Grazie mille come al solito

Re: Filtro item listbox

Inviato: martedì 26 aprile 2022, 19:16
da patel
qual'è la soluzione che hai adottato ?

Re: Filtro item listbox

Inviato: martedì 26 aprile 2022, 19:18
da Luka2017
Questo risolto è legato al filtro e non all'email