Autofilter Field kohtaan kaava

Moi.
Minulla on 1 rivillä päivämääriä, ja sen alla soluja eri väreillä.

Miten saan napin autofiltertoiminnon toimimaan siten että se suodattaa tämän päivän kohdan tietyllä värillä olevat rivit?

Sain sillä tavalla toimimaan että sarakenumero on tietty (Field:=8)
Miten saan sen että nappi valitsee tämän päivän kohdalta sarakkeen (esim. AA1) ja suodattaa siitä punaisella värillä olevat solut (eli Field: ( tilalle AA1 vaastaava sarake tänään, huomenna AB1 sarake, jne

Private Sub ToggleButton1_Click()

If ToggleButton1.Value = True Then
On Error Resume Next
ActiveSheet.Range("$A$8:$CDZ$95").AutoFilter Field:=8, Criteria1:=RGB(255, 0 _
, 0), Operator:=xlFilterCellColor


Else
On Error Resume Next
ActiveSheet.Shapes.Range(Array("ToggleButton1")).Select
ActiveSheet.Range("$A$8:$CDZ$95").AutoFilter Field:=8

End If
End Sub
6327
Äänestä

Muut lukivat myös

Vastaukset 6

Vanhimmat

automaatisesti löydät sarakkeen VBA:ssa
Application.WorksheetFunction.Match(cdbl(Date), Range("8:8"))

Keep EXCEling
@Kunde

Äänestä

Kyseessä on siis aikataulu, jossa eri tapahtumien soluja eri väreillä
Siis päivämäärät ovat rivillä 1
tapahtumat ovat alla olevilla riveillä vuoden ajalta, eli sarakkeet B:NB

Tarkoitin sellaista toimintoa että nappia alas painamalla näkyisi vain tämän päivän kohdalla vaikkapa punaisella värillä merkityt tapahtumat, eli valitaan sarakke tämän päivän kohdalta, ja siitä sarakkeesta suodatetaan punaiset solut eri riveiltä.

Sain tehtyä napin joka hakee tämän päivän mutta että samalla napilla vielä samalla suodattaisi värin mukaan...

Äänestä

jos antamasi kaava toimii niin kuten sanoin postauksessani löydät oikean sarakkeen ko päivänä
Application.WorksheetFunction.Match(cdbl(Date), Range("8:8"))...

lisättynä toimivaan koodiisi

Private Sub ToggleButton1_Click()
On Error Resume Next
If ToggleButton1.Value = True Then

ActiveSheet.Range("$A$8:$CDZ$95").AutoFilter Field:=Application.WorksheetFunction.Match(CDbl(Date), Range("1:1")), Criteria1:=RGB(255, 0 _
, 0), Operator:=xlFilterCellColor

Else

ActiveSheet.Shapes.Range(Array("ToggleButton1")).Select
ActiveSheet.Range("$A$8:$CDZ$95").AutoFilter Field:=Application.WorksheetFunction.Match(CDbl(Date), Range("1:1"))

End If
End Sub

Keep EXCEling
@Kunde

Äänestä
  • Kiitos.
    Saisiko vielä suodatusta niin että se valitsisi kaikki muut värit paitsi valkoisen.
    En saanut erisuuri merkkiä (<>) toimimaan = merkin tilalla

    Äänestä

  • Tällainen koodi ei siis toimi:
    Criteria1:<>RGB(255, 255, 255), Operator:=xlFilterCellColor

    Mikä toimisi jotta suodattaisi muut paitsi valkoiset?

    Äänestä

väreillä hiukan vaikeempaa, mutta lisäämällä apusarakkeen ja siihen koodaamalla värikoodit ja arvojen perusteella voi sitten suodattaa(-4142 on ei täyttöä ja värit sitten positiivisiä) , eli nyt lisäsin CEA sarakkeen suodatusalueeseen ja sitä hyödynsin... ;-)
muuta tarvittaessa sarake koodiin
sarake CAE on Field:=2159


Private Sub ToggleButton1_Click()
Dim Sarake As Long
Dim i As Long

On Error Resume Next
If ToggleButton1.Value = True Then
Range("CEA:CEA") = ""
Sarake = Application.WorksheetFunction.Match(CDbl(Date), Range("1:1"))
For i = 9 To 95
Range("CEA" & i) = Cells(i, Sarake).Interior.ColorIndex

Next
ActiveSheet.Range("$A$8:$CEA$95").AutoFilter Field:=2159, Criteria1:=">0"

Else

ActiveSheet.Shapes.Range(Array("ToggleButton1")).Select
ActiveSheet.Range("$A$8:$CEA$95").AutoFilter Field:=Sarake
End If
End Sub

Keep EXCEling
@Kunde

Äänestä

Kommentoi aloitusta


yks.kysymys kirjoitti:

Moi.
Minulla on 1 rivillä päivämääriä, ja sen alla soluja eri väreillä.

Miten saan napin autofiltertoiminnon toimimaan siten että se suodattaa tämän päivän kohdan tietyllä värillä olevat rivit?

Sain sillä tavalla toimimaan että sarakenumero on tietty (Field:=8)
Miten saan sen että nappi valitsee tämän päivän kohdalta sarakkeen (esim. AA1) ja suodattaa siitä punaisella värillä olevat solut (eli Field: ( tilalle AA1 vaastaava sarake tänään, huomenna AB1 sarake, jne

Private Sub ToggleButton1_Click()

If ToggleButton1.Value = True Then
On Error Resume Next
ActiveSheet.Range("$A$8:$CDZ$95").AutoFilter Field:=8, Criteria1:=RGB(255, 0 _
, 0), Operator:=xlFilterCellColor


Else
On Error Resume Next
ActiveSheet.Shapes.Range(Array("ToggleButton1")).Select
ActiveSheet.Range("$A$8:$CDZ$95").AutoFilter Field:=8

End If
End Sub

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu