Ahoj, jen tak se zeptám, jestli ta funkce v powerpointu chybí, nebo ji jen neumím najít.
Mám prezentaci v ní graf a vedle textové pole.
Va grafu mám zobrazen koláč s čísly, kdy tato čísla se řídí regionálním nastavením windows, destinný oddělovač tečka, nebo čárka, takže uživatel v US vidí tečku, my v ČR čárku.
Toto je správně, pak mám ale v prezentaci vložené textové pole kde mám součet a tady je ten problém "textové pole", kde každý uživatel vidí to co tam napíšu. Neexistuje něco jako vložení číselného pole, které by se stejně jako graf řídilo místním nastavením?
Zkoušel jsem to obejít, vytvořením grafu i onoho sučtu čistě v excelu a tento vložit jako objekt do prezentace. Bohužel v tomto případě se s americkým nastavením stále zobrazovala čárka a to do chvíle, než jsem 2x klikl na objekt, pak se teprve vše aktualizovalo na tečky.
Díky
M@
Super, funguje. Moc Děkuji.
Trochu pozměnit postup a jde to :-), sám bych se s tím asi trápil asi hodně dlouho.
Díky
M@
Zdravím,
Rád bych se zeptal je-li tady někdo znalý vbscriptu, kdo by mě pomohl nasměrovat správným směrem.
V příloze mám 3 soubory, kdy
- pokus.txt je zdroj dat
- pokus.vbs by měl daný soubor zpracovat a uložit jako pokus xlsx, bohužel nějak mi o nefunguje a nějak už si nevím rady.
- pokus_vba.xlsm udělá to co by měl udělat ten script, akorát, že to udělá pomocí vba přímo v excelu.
Ano, můžu využít tento pomocný soubor, ale elegantnější by to bylo přímo z toho scriptu bez nutnosti existence pomocného souboru.
Předem děkuji za případné tipy :-)
M@
Je to složitější než bych čekal :-). Podařilo se mi ho vytvořit (Excel VSTO Add-in) V doplňcích ho vidím a výše popsaným způsobem si daný panel můžu i zobrazit.
Ve VBA jsem pak hledal jak ho vyvolat.
Když si viz první řádek nechám zobrazit stav, jestli je visible, tak mi odpoví správně, ale když pak chci status změnit, tak mi to hodí nespecifikovanou chybu (ať chci nastavit true, nebo false)
MsgBox Application.CommandBars("Martin TEST").Visible
Application.CommandBars("Martin TEST").Visible = False
V podstatě jsem jen chtěl zkusit, jestli by ovládací userform, šel nahradit postranním panelem.
Ahoj,
pokouším se pomocí VS vytvořit doplněk, ale nějak si nevím rady s jeho zobrazením. Když si dám doplňky, tam ho odškrtnu a potvrdím a následně zaškrtnu a potvrdím, tak se zobrazí.
Otázka je jestli by ho nešlo zavolat nějak inteligentněji, nejlépe přes VBA.
Díky
M@
Tipuji, že problém bude v "5", pokud už máte zformátováno jako číslo, tak by tam měla být čistě 5.
Jen dodám, že cílem není to aby vypsané vzorce z ověření nevracely chybu, to ony nejspíš budou, ale když si pak dáte u nějaké té buňce co chcete smazat, zobrazit následníky, tak se vám to na daný vzorec odkáže, nezávisle na to co je jeho výsledkem.
M@
Tak ještě jedna úprava kódu :-)
Public Sub Najdi()
If VALIDACE = False Then Exit Sub
Dim rd As Single
Range("CA1:CB1") = Split("Vzorec;Buňka", ";")
rd = 2
ActiveSheet.Cells.SpecialCells(xlCellTypeAllValidation).Select
For Each cell In Selection
Range("CA" & rd).Formula = cell.Validation.Formula1
Range("CB" & rd) = cell.Address
rd = rd + 1
If cell.Validation.Formula2 <> "" Then
Range("CA" & rd).Formula = cell.Validation.Formula2
Range("CB" & rd) = cell.Address
rd = rd + 1
End If
Next
End Sub
Public Function VALIDACE() As Boolean
On Error GoTo x
VALIDACE = False
ActiveSheet.Cells.SpecialCells(xlCellTypeAllValidation).Select
VALIDACE = True
Exit Function
x:
End Function
Není ten list třeba zamčený?
Ono těžko říct, když to člověk nevidí :-)
Viz. obrázek.
+ upravené makro které udělá výpis do buněk CA:CB.
Public Sub Najdi()
Dim rd As Single
Range("CA1:CB1") = Split("Vzorec;Buňka", ";")
rd = 2
ActiveSheet.Cells.SpecialCells(xlCellTypeAllValidation).Select
For Each cell In Selection
Range("CA" & rd).Formula = cell.Validation.Formula1
Range("CB" & rd) = cell.Address
rd = rd + 1
Next
End Sub
M@
Pak by to nějak mohlo fungovat v rámci stejného listu, s tím že oblast pro výpis jsem nastavil na AA:AB, což lze změnit dle počtu používaných sloupců. Tyto pomocné pak lze smazat.
Public Sub Najdi()
Dim rd As Single
Range("AA1:AB1") = Split("Vzorec;Buňka", ";")
rd = 2
ActiveSheet.Cells.SpecialCells(xlCellTypeAllValidation).Select
For Each cell In Selection
Range("AA" & rd).Formula = cell.Validation.Formula1
Range("AB" & rd) = cell.Address
rd = rd + 1
Next
End Sub
M@
marjankaj napsal/a:
Jeza.m napsal/a:Po tom "zjednodušení" mě napadlo, vytvořit si pomocný list.
Pak makrem vyhledat všechny buňky s ověřením, projet je a vzorec ověření zapsat na tento pomocný list, vedle něj pak vždy uvést buňku ve které se ověření nachází.
M@
A skúšal si makrom "projet bunku s overením"?
Ja som si nahral makro ktoré upravilo zoznam overenia. Prvé čo urobilo bolo vymazanie overeného zoznamu.(Validation.delete)
Možno sa na to dá ísť nejako inak.
Po tom "zjednodušení" mě napadlo, vytvořit si pomocný list.
Pak makrem vyhledat všechny buňky s ověřením, projet je a vzorec ověření zapsat na tento pomocný list, vedle něj pak vždy uvést buňku ve které se ověření nachází.
Když pak klikneš na buňku kterou chceš smazat a dáš si najít následníky, tak by to mělo najít i buňky z tohoto listu, kde pak zjistíš, o kterou buňku se jedná.
Jen takový tip :-)
M@
Jestli dobře chápu, tak máš například buňku A1, kterou bys rád smazal, ale před tím si chceš ověřit, že se na ní něco neodkazuje.
U vzorců to je jednoduché, ale tebe by zajímalo, jestli není součástí ověření dat u jiné buňky.
Což bude docela oříšek, ověření může mít jakákoliv buňka, takže bys musel jít buňku po buňce a ověřovat má-li ověření.
Pokud ano, tak projít vzorec ověření a hledat jestli se v něm daná buňka nevyskytuje, nejen přímo, ale i formou oblasti. Ověření může být i formou pojmenovaných názvů, kdy bys musel hledat odkazy daných názvů. No a nakonec existuje i něco jako nepřímé odkazy a tam už si to ani představit neumím.
Ale tak třeba tady bude někdo moudřejší :-)
M@
Select case se taky hodí, ale víc by se asi hodila smyčka.
Zkusil jsem jen tak bez testu ...
Public Sub FiltrStart()
Application.ScreenUpdating = False
Dim LIST_PT()
Dim LIST_FI()
LIST_PT = Array("Data", "Hodnota", "Pozice", "Souhrn")
LIST_FI = Array("ID_smart", "ID_smart", "ID_lost", "ID_lost")
Dim NewCat As String
Dim NewCatP As String
NewCat = Worksheets("List1").Range("AG1").value
NewCatP = Worksheets("List1").Range("AG4").value
For ind = 0 To UBound(LIST_PT)
Select Case LIST_PT(ind)
Case Is = "Data"
Filtry LIST_PT(ind), LIST_FI(ind), NewCat, True
Case Is = "Hodnota"
Filtry LIST_PT(ind), LIST_FI(ind), "", False
Case Else
Filtry LIST_PT(ind), LIST_FI(ind), NewCatP, True
End Select
Next
Application.ScreenUpdating = True
End Sub
Public Sub Filtry(ktaname As String, fieldname As String, nvalue As String, clearfilters As Boolean)
Dim pt As PivotTable
Dim Field As PivotField
Set pt = Worksheets("List1").PivotTables(ktaname)
Set Field = pt.PivotFields(fieldname)
If clearfilters = True Then
pt.Field.ClearAllFilters
pt.Field.currentpage = nvalue
End If
pt.RefreshTable
End Sub
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.