Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Combobox: visualizzare dati filtrati

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Combobox: visualizzare dati filtrati

Postdi VisitorsVBA » 24/02/07 12:54

Ciao ragazzi,
intanto volevo fare un ringraziamento a tutti per l'ottimo aiuto che mi avete dato e che mi ha permesso di iniziare a imparare il VBA.
Detto questo, vorrei porvi un quesito, cioè, se è possibile visualizzare i dati filtrati di unf oglio excel in un combobox.
Mi spiego meglio:
Sul Foglio1 di excel ho elencato, per colonna, da A a F le marche, i modelli e le cartucce che montano di 3 marche di stampanti.
Aprendo la userform "Cartucce" mi filtra la marca indicata in una casella di testo "Marca" della stessa userform "Cartucce".
Nel combobox vorrei che mi visualizzasse solo i dati filtrati e non tutti, come avviene nel mio caso, con il seguente codice generato:


Dim marca
marca = FrmCartucce.TxtMarca
If marca = "" Then Exit Sub
Worksheets("Foglio1").Select
Range("A1:F1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:=marca
FrmCartucce.CmbModelloStampante.RowSource = ""
CmbModelloStampante.RowSource = "Foglio1!$B2:$F65000" 'VISUALIZZA TUTTO INVECE DEL FILTRO

Come posso correggere il codice.

Grazie a tutti. :-?
VisitorsVBA
Utente Junior
 
Post: 16
Iscritto il: 23/11/06 18:43

Sponsor
 

Postdi Anthony47 » 28/02/07 02:22

Ciao Visitor, temo che quello che cerchi non si puo' fare in modo diretto; potresti farlo quindi in modo indiretto, copiando i dati filtrati in un' altra area di servizio e usando questa area come RowSource del tuo combobox.

Per copiare i dati filtrati, puoi partire da qualcosa come:

Codice: Seleziona tutto
LRow = Range("A65536").End(xlUp).Row
'
'Qui inserisci le istruzioni di filtro
'
Range("A1:F" & LRow).SpecialCells(xlCellTypeVisible).Copy
Sheets("Foglio11").select      '<<<< Inserire corretto nome foglio
Cells.Select
Selection.ClearContents
Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
'Infine:
CmbModelloStampante.RowSource = ActiveSheet.UsedRange.Address


Prova e fatti sentire.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi Anthony47 » 28/02/07 02:27

Per evitare equivoci, la cosiddetta "area di servizio" corrisponde al foglio citato in questa istruzione:
Codice: Seleziona tutto
Sheets("Foglio11").select      '<<<< Inserire corretto nome foglio


Se, come tutti noi, non arrivi al Foglio11 o rinomini un foglio (riservato solo a questo scopo) o cambi l' etichetta sull' istruzione.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Combobox: visualizzare dati filtrati":


Chi c’è in linea

Visitano il forum: Nessuno e 16 ospiti