Pivottábla tételek vezérlése makróval
2022-08-03T20:02:44+02:00
2022-08-04T20:54:08+02:00
2022-08-05T13:13:43+02:00
Gergo92
Sziasztok!

Van egy ilyen makróm!
Sub Datum_beallitas() Dim datum As String Dim PItem As PivotItem Dim PTable As PivotTable datum = Range("T1") For Each PItem In ActiveSheet.PivotTables("Kimutatás1").PivotFields("Dátum").PivotItems If PItem.Name = datum Then Sheets("Napi_Grafikonok").PivotTables("Kimutatás1").PivotFields("Dátum").CurrentPage = datum Sheets("Napi_Grafikonok").PivotTables("Kimutatás2").PivotFields("Dátum").CurrentPage = datum Sheets("Napi_Grafikonok").PivotTables("Kimutatás3").PivotFields("Dátum").CurrentPage = datum Sheets("Napi_Grafikonok").PivotTables("Kimutatás4").PivotFields("Dátum").CurrentPage = datum Sheets("Napi_Grafikonok").PivotTables("Kimutatás5").PivotFields("Dátum").CurrentPage = datum Sheets("Napi_Grafikonok").PivotTables("Kimutatás6").PivotFields("Dátum").CurrentPage = datum Sheets("Napi_Grafikonok").PivotTables("Kimutatás7").PivotFields("Dátum").CurrentPage = datum Sheets("Napi_Grafikonok").PivotTables("Kimutatás8").PivotFields("Dátum").CurrentPage = datum Else 'MsgBox "Nem megfelelő a dátum!" End If Next End Sub
Ezzel, ha a T1 cellába beírok egy dátumot (pl. 2022.08.03), akkor gombnyomásra azt szeretném, hogy a sheet-en lévő 8 db kimutatásban is erre a dátumra legyen a szűrő beállítva.
Futtatáskor valamiért semmi nem történik, még hibaüzenet sem jelenik meg.

Ötlete van valakinek, hogy mi lehet a baj?
Mutasd a teljes hozzászólást!
Szia!
Mivel a T1 cella dátum típusú és a kimutatásban nincs megformázva a dátum mező, ezért a formátum a vezető nullák nélküli érték lesz.
Használd ezt a sort:

datum = Month(Range("T1").Value) & "/" & Day(Range("T1").Value) & "/" & Year(Range("T1").Value)

Üdv.
Mutasd a teljes hozzászólást!

  • Szia!
    A dátumot ilyen esetben angol formátumban - mm/dd/yyyy - kell megadni. De ez nem olyan egyszerű, mert a dátumok különlegesen viselkednek.
    Mivel a PItem.Name szöveges változó, a datum nevű változódnak is szövegnek kell lennie - amit így is definiáltál. De kérdés, hogy a T1 cellába mit írsz be és a cellád milyen formátumú. Azt kell elérned, hogy a datum nevű változódba a fenti formátumban megadott szöveg kerüljön. Ezt szöveg műveletekkel tudod megoldani.
    Ha pl. a T1 cellába 2022.08.04 formában látod amit beírtál, akkor 

    datum=Mid(Range("T1").TEXT,6,2) & "/"& Right(Range("T1").TEXT,2) & "/" & Left(Range("T1").TEXT,4)
    adja a megfelelő szöveget.
    Üdv.
    Ps. Ha kódot másolsz be, használd a kód (</>) gombot, mert úgy sokkal áttekinthetőbb.
    Mutasd a teljes hozzászólást!
  • Szia!

    Próbálkoztam már mindennel.
    A T1 cellában is, a kimutatásban is és a kimutatás adatforrásában is az ÉÉÉÉ.HH.NN formátum van.

    Próbálkoztam az MM/NN/YYYY formátummal is, így sem reagál semmire sem futtatáskor.

    Ill. próbálkoztam még azzal a kóddal is amit mondtál, az sem működött.

    Nem tudom, mi lehet a baj.
    Mutasd a teljes hozzászólást!
  • Szia!
    Így sajnos nem tudom megmondani, mi lehet a baj. Talán tegyél fel egy mintát valahova elérhetően, semleges adatokkal.
    Üdv.
    Mutasd a teljes hozzászólást!
  • Szia!

    Ide feltöltöttem.

    Köszönöm szépen, hogy foglalkozol vele!!!
    Mutasd a teljes hozzászólást!
    Csatolt állomány
  • Szia!
    Mivel a T1 cella dátum típusú és a kimutatásban nincs megformázva a dátum mező, ezért a formátum a vezető nullák nélküli érték lesz.
    Használd ezt a sort:

    datum = Month(Range("T1").Value) & "/" & Day(Range("T1").Value) & "/" & Year(Range("T1").Value)

    Üdv.
    Mutasd a teljes hozzászólást!
abcd