Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



AutoFilter

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: AutoFilter

Autor: Gábina

12:14:55 08.07.2009

Funguje mi to a snad to pomůže...

Pro procházení jednotlivých řádků zkuste
procházet jednotlivé areas a jejich řádky
a např. vypsat adresu řádku v msgboxu:

[code]
Sub TestAF()
Dim AF As AutoFilter

If Not ActiveWorkbook.Worksheets(1).AutoFilterMode Then
MsgBox "V harku nie je zapnuty filter.", vbCritical
Exit Sub
End If
If Not ActiveWorkbook.Worksheets(1).FilterMode Then
MsgBox "V harku sice je filter zapnuty, ale filtrovanie nie je aplikovane.", vbExclamation
Exit Sub
End If

Set AF = ActiveWorkbook.Worksheets(1).AutoFilter

MsgBox "Filtrovaniu vyhovuje " & AF.Range.Columns(2).SpecialCells(xlCellTypeVisible).Count - 1 & " z " & AF.Range.Rows.Count - 1 & " zaznamov."
MsgBox "Cislo prveho riadku filtra: " & AF.Range.Row
MsgBox "Cislo posledneho riadku filtra: " & Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row ' cislo posledenho riadka

Dim rcf As Range
Set rcf = AF.Range.SpecialCells(xlCellTypeVisible)

Dim a As Integer, r As Integer, rc As Long
For a = 1 To rcf.Areas.Count
For r = 1 To rcf.Areas(a).Rows.Count
MsgBox rcf.Areas(a).Rows(r).Address
Next r
rc = rc + rcf.Areas(a).Rows.Count
Next a
MsgBox "Počet řádků oblasti s aktivnim autofiltrem: " & rc

Set rcf = Nothing
Set AF = Nothing
End Sub
[/code]

Optimalizaci rychlosti nemám bohužel momentálně možnost zkoumat...
Mnoho zdaru!

Citovat příspěvek

 

Re: AutoFilter

Autor: 585

5:52:20 05.07.2009

no vidim, ze tu na VB fore je az privelmi mrtvo.

za ten cas som nieco vydumal, povacsine metodou pokus-omyl. takze:
[code]
Sub TestAF
Dim AF As AutoFilter

If Not Worksheets(1).AutoFilterMode Then
MsgBox "V harku nie je zapnuty filter.", vbCritical
Exit Sub
End If
If Not Worksheets(1).FilterMode Then
MsgBox "V harku sice je filter zapnuty, ale filtrovanie nie je aplikovane.", vbExclamation
Exit Sub
End If

Set AF = Worksheets(1).AutoFilter

MsgBox "Filtrovaniu vyhovuje " & AF.Range.Columns(2).SpecialCells(xlCellTypeVisible).Count - 1 & " z " & AF.Range.Rows.Count - 1 & " zaznamov."

MsgBox "Cislo prveho riadku filtra: " & AF.Range.Row
MsgBox "Cislo posledneho riadku filtra: " & Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row ' cislo posledenho riadka
Set AF = Nothing
End Sub
[/code]
potrebujem vsak prechadzat jednotlivymi riadkami filtra, takze takto nie bo toto prechadza kazdou bunkou filtra:[code]
For Each r In AF.Range.SpecialCells(xlCellTypeVisible)
If r.Row <> AF.Range.Row Then MsgBox "Riadok: " & r.Row & "." & vbCrLf & "Text bunky: '" & r.Text & "'"
Next
[/code]
vie mi niekto poradit, cita to tu vobec (este) niekto? :S


a este taka nemila vec, preco, ak prechadzam vsetkymi filtrovanymi bunkami, priklad, cca 1000 riadkov po 40 stlpcov, trva to vo VBA (tiez priklad) 10 sekund, ale ked toto iste spravim z VB6, trva to mozno aj 2-3 minuty????? :S preco je tomu tak? iste, s nejakym oneskorenim ratam, kedze sa data vymienaju atd, ale az taky rapidny rozdiel to je?

Citovat příspěvek

 

Re: AutoFilter

Autor: 585

11:19:45 02.07.2009

ano, toto ma napadlo, ale nie je to celkom prakticke (kedze s Excelom neplanujem pracovat na pozadi, ale z aktivneho dokumentu budem citat data. rovnako tak vytvarat filter atd...). urcite to ucel splni, ale nie je to to, co presne chcem spravit.

nechcem nic oznacovat, ziadne SELECT a teda nechcem pracovat s oznacenymi bunkami.
chcem prechadzat bunky splnajuce podmienku daneho filtra.

ale i tak dkujem.

takze cakam. na gabinu :) (musim ta vyzvat bo inac sa tu neukazes, hh)

Citovat příspěvek

 

Re: AutoFilter

Autor: vb_fanda

10:46:30 02.07.2009

nazdar,
ja bych si s tím žádnou vědu nedělal.

Prostě bych si vyfiltroval řádky za pomoci filtru a následně bych ten výsledek zkopíroval na 2. list (pomocný) se kterým bych dále pracoval.

najdu poslední buňku (řádek) vyfiltrovaných záznamů (u mne je to sloupec B
pak vše zkopíruji až po první řádek
a vložím na ten pomocný list

níže je v rychlosti co se mi poveldo nahrát v Excel :

Range("B14").Select
Selection.End(xlDown).Select
ActiveWindow.SmallScroll Down:=6
Rows("116:116").Select
Range(Selection, Cells(1)).Select
Selection.Copy
ActiveSheet.Next.Select
ActiveSheet.Paste

mnoho zdaru

vb_fanda

Citovat příspěvek

 

Re: AutoFilter

Autor: 585

9:59:09 02.07.2009

nikto nic?

Set r = mySheet.AutoFilter.Range

co treba teraz pouzit? lebo ak pouzijem
r.Rows.SpecialCells(xlCellTypeVisible).Count
tak mi to vrati pocet vsetkych (viditelnych ???) buniek (ci riadkov???), proste zjavne zly pokus.

nooo, ako zistim, ci je riadok viditelny-zobrazeny alebo nie?
ako zistim cislo riadku, pretoze ak pouzijem r.Row tak to mi zrejme vrati cislo x-teho riadku v range a nie cislo riadku v XLS, nie? no, som mimoza vcul.

a jak naschval, vsetci maju prazdniny a sem nekuk :S

Citovat příspěvek

 

Re: AutoFilter

Autor: 585

10:12:30 01.07.2009

ja som nejak mimo, neviem ako na AutoFilter, konkretne ako zadanim kriteria do filtra ziskat vyfiltrovane riadky, ako s nimi dalej pracovat, ako prechadzat rad za radom (IBA) tymito filtrovanymi riadkami...

prosim cas o nejaky priklad, konkretny. pripadne nejaky odkaz nan.
potrebujem to vo VB6, ale staci mi priklad pre VBA.

Citovat příspěvek

 

Re: AutoFilter

Autor: fugi

18:26:03 01.11.2007

r.88 a 93
da sa,pohladaj na nete tuto f.
meni nastavenie riadkov na visible abo visible=true /xlyes/ abo cosi take
2xzosit
hm to uz asi bude narocnejsie ale tiez to urcite ide - prepojenia medzi zositmi
prip.nacitanie dat zo zatvoreneho zos.
este mozeme popisat/pokecat,ale dnes som grogy
ahoj

Citovat příspěvek

 

AutoFilter

Autor: Barkas

11:42:18 01.11.2007

Zdravím,

když mám nadefinovaný automatický filtr, dá se nějak zistit
jaké řádky mi vrátil? A s těmito řádky dále pracovat ve VBA?

Např. mam 1000 rádku. Filtr mi po odfiltrovani zobrazi radky 88 a 93,
Jak je dostanu do VBA?

A ještě takový dotaz - dá se vytvořit automatický filtr mezi více (např. dvěma) sešity.

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: