Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Filtrare dati x una ListBox

723 views
Skip to first unread message

Roccia

unread,
Nov 13, 2006, 12:43:33 PM11/13/06
to
Ciao a tutti,
Mi servirebbe un grosso aiuto, ho già tentato con più codici (
copiati da siti ) ma non ci sono riuscito.
Ho un foglio Excel che uso come Prima Nota Colonna A=Fornitore
B=Data C=n° Fattura D=Importo Fatt. E=Pagato il

Ho creato una UserForm con una ComboBox e una ListBox.
Nella ComboBox vorrei selezionare il fornitore che si trova nella
colonna A e visuarizzare tutte lefatture del fornitore in ordine di
data n° fattura Importo Fatt. Pagato il.

Se poi non chiedo troppo, poter filtrare un certo periodo tipo un
trimestre oppure un anno.

Vi ringrazio per un eventuale risposta.

Ciao Roccia

pippo5

unread,
Nov 13, 2006, 1:47:40 PM11/13/06
to

"Roccia" <roggian...@libero.it> ha scritto nel messaggio
news:1163439813.1...@m7g2000cwm.googlegroups.com...

Ciao Roccia

--------------------------------

Ciao Roccia,
ti ho inviato un file di esempio che sarebbe da ampliare,
vedi se come base può andare.

Ciao

Pippo Coco


Roccia

unread,
Nov 14, 2006, 4:16:15 AM11/14/06
to

pippo5 ha scritto:

Ciao Pippo, grazie per il file, a mè serviva solo una macro per poter
caricare i dati nella listbox, però cercherò di studiare un pò il
codice sperando di riuscire ad adattare il codice alle mie esigenze
(sarà un pò dura) .
Ti ringrazio moltissimo per la tua disponibilità.
Ciao Roccia

Roccia

unread,
Nov 14, 2006, 8:57:20 AM11/14/06
to

Roccia ha scritto:

Ciao.
C'è qual'cuno che mi può dare una mano ad adattare questo codice alle
mie esigenze sopra citare?

Private Sub ListBox1_Enter()
Application.ScreenUpdating = False
Sheets("foglio2").Select
Range("A1").Select
X = Range("A1").Address
Y = Range("A1").End(xlDown).Address
ListBox1.RowSource = "" & X & ":" & Y & ""
Sheets("foglio1").Select
Application.ScreenUpdating = True
End Sub

A mè servirebbe almeno 4 colonne.
Ringrazio per un eventuale aiuto.
Ciao Roccia

Maurizio Borrelli

unread,
Nov 14, 2006, 12:08:03 PM11/14/06
to
"Roccia" wrote in message
news:1163512639.4...@b28g2000cwb.googlegroups.com:

> Roccia ha scritto:
> > pippo5 ha scritto:
> > > "Roccia" <roggian...@libero.it> ha scritto nel messaggio
> > > news:1163439813.1...@m7g2000cwm.googlegroups.com...
> > > Ciao a tutti,
> > > Mi servirebbe un grosso aiuto, ho già tentato con più codici (
> > > copiati da siti ) ma non ci sono riuscito.
> > > Ho un foglio Excel che uso come Prima Nota Colonna A=Fornitore
> > > B=Data C=n° Fattura D=Importo Fatt. E=Pagato il
> > > Ho creato una UserForm con una ComboBox e una ListBox.
> > > Nella ComboBox vorrei selezionare il fornitore che si trova nella
> > > colonna A e visuarizzare tutte lefatture del fornitore in ordine di
> > > data n° fattura Importo Fatt. Pagato il.
[...]

> C'è qual'cuno che mi può dare una mano ad adattare questo codice alle
> mie esigenze sopra citare?
> Private Sub ListBox1_Enter()
> Application.ScreenUpdating = False
> Sheets("foglio2").Select
> Range("A1").Select
> X = Range("A1").Address
> Y = Range("A1").End(xlDown).Address
> ListBox1.RowSource = "" & X & ":" & Y & ""
> Sheets("foglio1").Select
> Application.ScreenUpdating = True
> End Sub
> A mè servirebbe almeno 4 colonne.

Ciao Roccia.

Io *davvero* mi domando perche' complicarsi la vita con uno UserForm
quando coi filtri di Excel si puo' fare tutto cio' che domandi "sul
posto". Puoi spiegare, per favore? Poi ***semmai*** potremmo continuare
il discorso dello UserForm.

--
Ciao :o)
Maurizio Borrelli, Microsoft Office Access MVP
-------- http://mvp.support.microsoft.com/
?SPQR(C)
X RIO - Risorse in italiano per gli utenti di office
-------- http://www.riolab.org/


pippo5

unread,
Nov 14, 2006, 12:17:01 PM11/14/06
to

"Roccia" <roggian...@libero.it> ha scritto nel messaggio
news:1163512639.4...@b28g2000cwb.googlegroups.com...

Roccia ha scritto:

---------------------------

Ciao Roccia,
il codice che hai postato non fà altro che :
- Disattivare l'aggiornamento dello schermo per evitare
lo sfarfallio.
- Popolare la ListBox di quello che c'è nella Colonna A del Foglio2.
- Attivare il Foglio1.

Del contenuto della ListBox poi bisognerà farne qualcosa, cioè
selezionare un rekord.
Nel file che ti ho inviato infatti, in base alla scelta fatta sulla
ListBox si provvede ad estrarre con il filtro avanzato i rekords
che soddisfano la condizione o le condizioni e puoi mettere tutte
le colonne che vuoi.
Praticamente tu hai già tutto o quasi; inviami il tuo file che
vedo di completarlo.

Ciao

Pippo Coco

Norman Jones

unread,
Nov 15, 2006, 4:57:00 AM11/15/06
to
Ciao Roccia,

Ho ricevuto la tua email.

Senza promessa da parte mia, potresti mandarmi il tuo file,
fermo restando che una soluzione eventuale sara' postata
sul NG


---
Regards,
Norman


Roccia

unread,
Nov 17, 2006, 11:06:50 PM11/17/06
to

Norman Jones ha scritto:

Ciao Norman,
scusami, ma è così difficile popolare una ListBox a 4 colonne?
perchè ho cercato sul NG, ma non riesco a trovare niente che fa al
caso mio, si ho trovato come popolare una ListBox inserita in un
foglio, ma non in una UserFom, cosa bisogna fare per adattarla alla
UserFom?
Attendo una tua risposta, grazie ciao Roccia.

Norman Jones

unread,
Nov 18, 2006, 3:12:49 AM11/18/06
to
Ciao Roccia,

'------------------------


scusami, ma è così difficile popolare una ListBox a 4 colonne?
perchè ho cercato sul NG, ma non riesco a trovare niente che fa al
caso mio, si ho trovato come popolare una ListBox inserita in un
foglio, ma non in una UserFom, cosa bisogna fare per adattarla alla
UserFom?
Attendo una tua risposta, grazie ciao Roccia.

'------------------------

Non e' difficile caricare una ListBox.

Comunque, avendo letto il thread e avendo visto il file di esempio
che mi hai mandato, sono pienemante d'accordo con Maurizio:
penso che tutta la funzionalità richiesta sia disponibile utilizzando
un filtro. Forse, prima di fornire del codice per un'Userform, sarebbe
utile se rispondessi alla domanda del Maurizio.


---
Regards,
Norman


Roccia

unread,
Nov 18, 2006, 4:26:38 AM11/18/06
to

Maurizio Borrelli ha scritto:

Ciao Maurizio
Il filtro lo utilizzo già con successo, volevo inserire un UserForm
per dare un immagine più professionale al programma.

Norman Jones

unread,
Nov 18, 2006, 10:37:47 AM11/18/06
to
Ciao Roccia,

'---------------------


scusami, ma è così difficile popolare una ListBox a 4 colonne?
perchè ho cercato sul NG, ma non riesco a trovare niente che fa al
caso mio, si ho trovato come popolare una ListBox inserita in un
foglio, ma non in una UserFom, cosa bisogna fare per adattarla alla
UserFom?

'---------------------

Se vuoi utilizzare un'Userform, come punto di partenza potresti
provare qualcosa del genere:

'=============>>
Option Explicit

Private Sub UserForm_Initialize()
Dim Rng As Range
Dim rCell As Range
Dim myCol As Collection
Dim i As Long, j As Long, k As Long
Dim n As Long
Dim Swap1 As Variant, Swap2 As Variant
Dim myItem As Variant

Set Rng = MyRng
Set myCol = New Collection

Me.ListBox1.ColumnCount = Rng.Columns.Count

On Error Resume Next
For Each rCell In Rng.Columns(1).Cells
With rCell
myCol.Add .Value, CStr(.Value)
End With
Next rCell
On Error GoTo 0

For i = 1 To myCol.Count - 1
For j = i + 1 To myCol.Count
If myCol(i) > myCol(j) Then
Swap1 = myCol(i)
Swap2 = myCol(j)
myCol.Add Swap1, before:=j
myCol.Add Swap2, before:=i
myCol.Remove i + 1
myCol.Remove j + 1
End If
Next j
Next i

For Each myItem In myCol
Me.ComboBox1.AddItem myItem
Next myItem

End Sub

'-------------------->>

Private Sub ComboBox1_Change()
Dim Rng As Range
Dim rCell As Range
Dim i As Long, j As Long
Dim arr() As Variant

Set Rng = MyRng
Me.ListBox1.Clear

For Each rCell In Rng.Columns(1).Cells
With rCell
If .Value = Me.ComboBox1.Value Then
i = i + 1
ReDim Preserve arr(1 To 5, 1 To i)
For j = 1 To Rng.Columns.Count
arr(j, i) = .Offset(0, j - 1).Value
Next j
End If
End With
Next rCell
Me.ListBox1.Column() = (arr)
End Sub

'-------------------->>

Public Function MyRng() As Range
Dim WB As Workbook
Dim SH As Worksheet
Dim Rng As Range
Dim iLastRow As Long

Set WB = Workbooks("Pippo.xls") '<<=== da CAMBIARE
Set SH = Sheets("Foglio1") '<<=== da CAMBIARE

With SH
iLastRow = .Range("A" & .Rows.Count).End(xlUp).Row
Set MyRng = .Range("A2:E" & iLastRow)
End With

End Function
'<<=============


---
Regards,
Norman


Roccia

unread,
Nov 18, 2006, 1:54:51 PM11/18/06
to

Norman Jones ha scritto:

Grazie Norman.

Il codice l'ho provato e funziona benissimo, era questo l'obbiettivo
che volevo raggiungere, il più è fatto ora cercherò di abbellirla un
pò, la UserForm
Di nuovo ti ringrazio e ti saluto
Ciao

0 new messages