Vyvolání procedury Vyřešeno

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

VALL
Level 1
Level 1
Příspěvky: 95
Registrován: únor 12
Pohlaví: Nespecifikováno
Stav:
Offline

Vyvolání procedury

Příspěvekod VALL » 11 črc 2012 14:54

Ahoj,

mám vyvolávající proceduru, která spustí jinou proceduru a poté vybere list.
Z nějakého mě neznámého důvodu list vždy vybere, ale proceduru nespustí.

Ukázka vyvolávajícího makra

Kód: Vybrat vše

Sub Detail()
    Call ptDetail_Filtr
    Sheets("Detail").Select
End Sub

Reklama
cmuch
Level 4.5
Level 4.5
Příspěvky: 1547
Registrován: březen 11
Bydliště: Drsná Vysočina :D
Pohlaví: Muž
Stav:
Offline

Re: Vyvolání procedury

Příspěvekod cmuch » 11 črc 2012 18:15

Tak to nevím proč. Na základě čeho se provede to makro ptDetail_Filtr.
Bylo by dobré sem dát přílohu.

VALL
Level 1
Level 1
Příspěvky: 95
Registrován: únor 12
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Vyvolání procedury

Příspěvekod VALL » 12 črc 2012 07:39

makro se vyvolává přes command button.

přikládám makro, které je voláno vyvolávajícím makrem (v úvodním článku).
V podstatě se jedná o zafiltrování KontTab dle zadání na zvláštním formuláři v jiném listě. Samostaně makro funguje. Pouze se nespustí kdxž ho volám pomocí call

Kód: Vybrat vše

Sub ptDetail_Filtr()

'Zafiltrování dle filtru na listě "PREHLED"
'---------------------------------------------
Application.ScreenUpdating = False

Dim rok As String, Obdobi As Variant, ObdobiHodn As Variant

rok = Sheets("Prehled").Range("B2").Value                 ' hodnota roku ve výběru
Obdobi = Sheets("Prehled").Range("B3").Value            ' výběr obddobí tzn., týden, měsíc rok, v makru uvádím pouze variantu pro Kt -> zkrácení makra
ObdobiHodn = Sheets("Prehled").Range("C3").Value    ' výběr čísla např týdne -> tzn., 45,46 atd.

'zrušení všech filtrů
'-------------------------
   Sheets("Detail").PivotTables("pt.Obchodnik").PivotFields("rok").ClearAllFilters
   Sheets("Detail").PivotTables("pt.Obchodnik").PivotFields("Kt").ClearAllFilters
   
   Sheets("Detail").PivotTables("pt.Zakaznik").PivotFields("rok").ClearAllFilters
   Sheets("Detail").PivotTables("pt.Zakaznik").PivotFields("Kt").ClearAllFilters
   
  On Error Resume Next
 
' Zapsání hodnot
'---------------------------
  Sheets("Detail").PivotTables("pt.Obchodnik").PivotFields("rok").CurrentPage = rok
  Sheets("Detail").PivotTables("pt.Zakaznik").PivotFields("rok").CurrentPage = rok
 
  If Obdobi = "Kt" Then Sheets("Detail").PivotTables("pt.Obchodnik").PivotFields("Kt").CurrentPage = ObdobiHodn
  If Obdobi = "Kt" Then Sheets("Detail").PivotTables("pt.Zakaznik").PivotFields("Kt").CurrentPage = ObdobiHodn


Application.ScreenUpdating = True
End Sub

cmuch
Level 4.5
Level 4.5
Příspěvky: 1547
Registrován: březen 11
Bydliště: Drsná Vysočina :D
Pohlaví: Muž
Stav:
Offline

Re: Vyvolání procedury  Vyřešeno

Příspěvekod cmuch » 12 črc 2012 09:27

Jsou ty makra v jednom modulu nebo je každé v jiném?
Pokud jsou v jiném, tak na ten filtr použij Public a mělo by to chodit.

VALL
Level 1
Level 1
Příspěvky: 95
Registrován: únor 12
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Vyvolání procedury

Příspěvekod VALL » 12 črc 2012 09:56

Makro je v každém modulu zvlášť.
napsal jsem ta takto:

Kód: Vybrat vše

Public rok As String, Obdobi As Variant, ObdobiHodn As Variant
Sub ptDetail_Filtr()


A nechodí to, list se přepne, makro (když jsme to krokoval) proběhne, ale neúspěšně.

--- Doplnění předchozího příspěvku (12 Črc 2012 11:00) ---

Tak jsem na to přišel a před dalšími řádky se velmi omlouvám. Vše funguje, funguje to i bez Public promměnných.
stačilo k tlačítku přiřadit správné makro................... :blush:

Ještě jednou se Cmuchovi omlouvám za zbytečný dotaz a děkuji za příklady řešení, které jsem použi jinde.


Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 5 hostů