Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

ispravka makroa za filtriranje više kolona

[es] :: Office :: Excel :: ispravka makroa za filtriranje više kolona

[ Pregleda: 964 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Siki 5

Član broj: 240086
Poruke: 116
*.dynamic.sbb.rs.



+2 Profil

icon ispravka makroa za filtriranje više kolona04.06.2020. u 09:29 - pre 46 meseci
Neophodno je istovremeno filtriranje B,E i H kolone po kriterijumu ">0" počevši od 5 reda. Macro koji sam našao ne radi to u ovom slučaju kako treba. U listu Data Table se nalazi originalni macro. Očigledno da nisam ispravio makro kako treba. Pokušavao sam i sa advanced filterom ali nisam uspeo,nešto ja tu ne kapiram kako treba.Zahvalnost se podrazumeva.
Snić
Prikačeni fajlovi
 
Odgovor na temu

pera68
Bačka Palanka

Član broj: 98559
Poruke: 121
185.46.213.*



+9 Profil

icon Re: ispravka makroa za filtriranje više kolona04.06.2020. u 10:09 - pre 46 meseci
ovo sam uradio bez makroa, sa običnom formulom u dodatnoj koloni.
Prikačeni fajlovi
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3445

Jabber: djoka_l


+1462 Profil

icon Re: ispravka makroa za filtriranje više kolona04.06.2020. u 10:21 - pre 46 meseci
Ja sam skoro oslepeo gledajući u radni list.
 
Odgovor na temu

Siki 5

Član broj: 240086
Poruke: 116
*.dynamic.sbb.rs.



+2 Profil

icon Re: ispravka makroa za filtriranje više kolona04.06.2020. u 11:17 - pre 46 meseci
Hvala. Nisam bio dovoljno jasan, nije uslov da filtrira samo one redove u kolonama gde je svuda ispunjen uslov > 0. Potrebno je da izdvoji sve vrednosti u koloni B veće od 0,nezavisno od vrednosti u kolonama E i H u istom redu. Isto to važi za kolone E i H. Desno od tabele koja se filtrira je primer onoga šta treba dobiti.

Snić
 
Odgovor na temu

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Moderator
Član broj: 25683
Poruke: 2267
*.mediaworksit.net.

Sajt: www.gowi.rs


+109 Profil

icon Re: ispravka makroa za filtriranje više kolona07.06.2020. u 08:09 - pre 46 meseci
Kako sam razumeo tvoj primer, osnovni problem je da ti ne filtriraš jedan opseg nego tri nezavisna opsega (iako se nalaze jedan pored drugog) - A:C, D:F i G:I. U tom slučaju potrebno je filter primeniti tri puta na svaki od opsega

Najbrže rešenje bilo bi preko AdvanceFiltera ali je potrebno da postoji header za podatke koji ja u tvom slučaju ne vidim. Naravno može da se doda privremeni header u VBA i onda obriše što ima smisla zavisno od veličinin Za primenu AdvanceFiltera preko VBA pogledaj dobro objašnjenje na YouTube

Ja sam rešio tako što sam išao red po red kroz tvoj opseg i brisao šta treba izbaciti što je dosta sporije ali meni brže da napravim kod - rešenje je na listu filtrirano VBA. Kod je relativno jednostavan i može se koristiti ako lista pre filtriranja nije suviše dugačka

Code:

Private Sub RemoveLessThanZero(rng As Range, bycol As Integer)
' VBA kod koji brise ceo red iz zadatog opsega rng u kome je
' je celija u zadatoj koloni bycol 0 ili manja
' P. Jovanovic za eliteseturity.orf
'
Dim numcols As Integer
Dim r As Long

    numcols = rng.Columns.Count
    ' Petlja kroz rng od dole na gore
    For r = rng.Rows.Count To 1 Step -1
        If rng.Cells(r, bycol).Value > 0 Then GoTo NextRow
        'Brisu se celije iz istog reda
        rng.Cells(r, 1).Resize(ColumnSize:=numcols).Delete Shift:=xlUp
NextRow:
    Next r
End Sub

Public Sub FilterAll()
Dim rwLast As Long  ' Poslednji red u trazenom opsegu
   ' Koristi se procedura brisanja za tri odvojena opsega
   rwLast = ActiveSheet.Range("A1").End(xlDown).Row
   RemoveLessThanZero ActiveSheet.Range("A1:C" & rwLast), 2
   rwLast = ActiveSheet.Range("D1").End(xlDown).Row
   RemoveLessThanZero ActiveSheet.Range("D1:F" & rwLast), 2
   rwLast = ActiveSheet.Range("G1").End(xlDown).Row
   RemoveLessThanZero ActiveSheet.Range("G1:I" & rwLast), 2
End Sub



Nije to loše Rembrante, samo što ne bi dodao još malo boje?
Prikačeni fajlovi
 
Odgovor na temu

Siki 5

Član broj: 240086
Poruke: 116
*.dynamic.sbb.rs.



+2 Profil

icon Re: ispravka makroa za filtriranje više kolona07.06.2020. u 10:09 - pre 46 meseci
Najpre hvala. Ovo je pravo rešenje. Sad je problem vratiti tabelu u prvobitno stanje nakon što iskoristim filtrirane podatke odnosno "otkazivanje" filtera. U normalnom postupku se to postiže klikom na ikonicu za filter što posle pokretanja ovog makroa nije moguće.
Snić
 
Odgovor na temu

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Moderator
Član broj: 25683
Poruke: 2267
*.mediaworksit.net.

Sajt: www.gowi.rs


+109 Profil

icon Re: ispravka makroa za filtriranje više kolona07.06.2020. u 20:12 - pre 46 meseci
Ideja ovog rešenja je da originalni podaci ostanu na posebnom listu, a da ovo filtriranje odradiš na kopiji. Ukoliko je potrebno i samo kopiranje na novi list može se odraditi u makrou.
Slično bi bilo i rešenje sa advance filterom - moraš da filtrirane podatake kopiraš van originalnog opsega.
Filtriranje u originalnom opsegu neće raditi jer se filtriranje vrši sakrivanjem celih redova, što ne odgovara u tvome primeru. Problem je što su ti opsezi jedan do drugog a filtriraju se nezavisno - to implicira da je možda organizacija podataka pogrešna.
Nije to loše Rembrante, samo što ne bi dodao još malo boje?
 
Odgovor na temu

Siki 5

Član broj: 240086
Poruke: 116
*.dynamic.sbb.rs.



+2 Profil

icon Re: ispravka makroa za filtriranje više kolona07.06.2020. u 20:27 - pre 46 meseci
Mislim da sam razumeo kako da rešim problem. Hvala.
Snić
Prikačeni fajlovi
 
Odgovor na temu

[es] :: Office :: Excel :: ispravka makroa za filtriranje više kolona

[ Pregleda: 964 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.