Pagina 1 di 1

[RISOLTO] macro Inserire i pulsanti del filtro automatico

Inviato: domenica 2 dicembre 2018, 0:58
da chimico
saluti ,

Voglio creare una macro di base in LibreOffice per inserire i pulsanti del filtro automatico nell'intervallo da "C1 a G1" in Sheet1 .
osservazione :
segue un file modello allegato e un'immagine della soluzione che sto cercando con Macro .
abbracci .
Schermata 2018-12-02 alle 08.43.33.png

Re: macro Inserire i pulsanti del filtro automatico

Inviato: lunedì 3 dicembre 2018, 9:23
da patel
prova il registratore di macro da Strumenti, macro, registra
applica i filtri manualmente e poi clicca su Termina Registrazione

Re: macro Inserire i pulsanti del filtro automatico

Inviato: lunedì 3 dicembre 2018, 10:15
da chimico
saluti amico mio ,

Ho già provato il registratore di macro, ma non funziona per la regione da "C1 a G1" ?

ha il foglio di lavoro allegato per testare .

abbracci .

Re: macro Inserire i pulsanti del filtro automatico

Inviato: lunedì 3 dicembre 2018, 11:25
da Gaetanopr
Ti allego tuo file con area definita "FILTRO" con il seguente range $Sheet1.$C$1:$G$337
Poi lancia la macro Filtro


Saluti

Re: macro Inserire i pulsanti del filtro automatico

Inviato: lunedì 3 dicembre 2018, 12:23
da chimico
saluti Gaetanopr ,

Grazie per l'aiuto .

puoi aumentare l'area definita "FILTRO" con intervallo per più colonne, se aggiungo più colonne .

il numero di colonne può variare .

la macro deve "vedere" tutte le colonne con i valori e quindi inserire i "filtro" nelle colonne con i valori .


amici abbracci .

Re: macro Inserire i pulsanti del filtro automatico

Inviato: lunedì 3 dicembre 2018, 13:00
da Gaetanopr
La prossima volta specifica meglio, perchè nel messaggio iniziale dicevi altro, usa questa macro

Codice: Seleziona tutto

Sub Filtro         'L' AREA DEFINITA Filtro DEVE ESSERE GIA' PRESENTE
Dim oDir As New com.sun.star.table.CellRangeAddress
Doc = ThisComponent
Sh = Doc.getSheets.getByName("Sheet1")
a = Sh.createCursor
a.gotoEndOfUsedArea(false)
LastRow = a.RangeAddress.EndRow
LastCol = a.RangeAddress.EndColumn

DB = ThisComponent.DataBaseRanges()
RBD = DB.getByName("Filtro")
Nome = "Filtro"
	If DB.hasByName(Nome) Then
		RBD = DB.getByName(Nome)
		oDir =  Sh.getCellrangeByPosition(2, 0, LastCol, LastRow).RangeAddress 
		RBD.setDataArea( oDir )
    End if
RBD.AutoFilter = True		
End Sub
Saluti

Re: macro Inserire i pulsanti del filtro automatico

Inviato: lunedì 3 dicembre 2018, 16:14
da chimico
[Risolto]

sr. Gaetanopr ,

                   Grazie mille per il tuo aiuto .

                  grazie per aver riformulato la macro .

                  È stato fantastico . :bravo:


amici abbracci .