davef8 napsal(a)Jde mi spíš o následující problém: kopíruji a různě skládám data z jednoho listu do druhého. Jeden sloupec mám s buňkami, kde by měl být v každé buňce select s možnostmi. Chtěl bych jen spustit makro a ve druhém listu se mi provedou připravené akce + vytvoření sloupce se selecty, které nemají na ničem závislost. Jde jen čistě o vytvoření sloupce selectů bez toho abych musel někam klikat, jen v makru.
Musím dát za pravdu v jednom směru davef8. Kód od Dana Sedláčka obsahuje chyby. Jde o to, že tam jsou asi 2x spojeny dva až tři různé řádky do jednoho.
kontrola.InputMessage = "Vložte hodnotu z výběru"kontrola.showInputMessage = Truekontrola.ErrorTitle = "POZOR – CHYBA"
'Správně jde o tři řádky
kontrola.InputMessage = "Vložte hodnotu z výběru"
kontrola.showInputMessage = True
kontrola.ErrorTitle = "POZOR – CHYBA"
'Celkem nechápu jak se to mohlo stát ale normální to není - Dan by takovou chybu nepustil.
'K chybě došlo zásahem do článku a to by uživatelé chytili a reklamovali.
'Nechci být paranoický ale tohle bylo uděláno záměrně jako sabotáž.
Nicméně je to řešení které dle mne davef8 požaduje. Aby bylo jasno funkční kód je tady :
Sub Validace_Roletka()
Dim oCel As Object
Dim oValidation As Object
Dim oSheet
Sheets = ThisComponent.getSheets()
oSheet = thisComponent.Sheets(0)
'oSheet = Sheets.getByName("List1")
oSheet1 = thisComponent.Sheets(1) 'List podle poředí od leva pro nasměrování
oSheet2 = thisComponent.Sheets(2) 'List podle poředí od leva pro nasměrování
'n = oSheet.getCellByPosition(48,1).Value
'oSheet.getCellByPosition(48,1).Value = 1
oCel = ThisComponent.getCurrentController.getActiveSheet.getCellByPosition(0,0) 'Buňka podle pozice
'oCel = ThisComponent.getCurrentController.getActiveSheet.getCellRangeByName("A1") ' Buňka podle jména
oValidation = oCel.getPropertyValue("Validation")
With oValidation
.Type = com.sun.star.sheet.ValidationType.LIST
.setFormula1 ( """První volba"";""Druhá volba"";""Třetí volba""" )
'.ShowList = com.sun.star.sheet.TableValidationVisibility.SORTEDASCENDING 'Řadí - to často nechceme
.ShowErrorMessage = True
.ErrorAlertStyle = com.sun.star.sheet.ValidationAlertStyle.STOP
.ErrorTitle = "Chybná data"
'.ErrorMessage = "Nevalidní zadání" 'Obsah nápovědy - stačí nadpis
End With
oCel.setPropertyValue("Validation", oValidation)
oCell1 = oSheet.getCellByPosition(0,0)
End Sub
Já ale pochybuji, že by to bylo řešení které davef8 hledá. Je to složitější nežli jsem nabízel. Takže i když tohle pustíte makrem do sešitu musí něco navazovat. Pochybuji že by stačil výběr v buňce. většinou se navazuje dalším makrem - které se musí postavit na událost. Tohle makro tam pustí roletku a ta čeká až ji něco přečte a pak se pustí makro je - li tam nějaké napojeno.
To Dan popisuje také jako možnost spolu s různými vlastnostmi jako je načtení seznamu do výběru, nebo navázání sekundárního makra (volání makra) které ovšem musí existovat. Takže ve výsledku jde o více kroků nežli si davef8 představuje.
Vlastní roletka nic neřeší je to určitě složitější. Do buňky se musí kliknout a následně vybrat. Teprve poté je možné uvažovat, že se spustí makro je-li nějaké připraveno. Při tom stačí kliknbout na hyperlink, nebo jen do správné buňky či řádku a už to může frčet. Když s roletkou tak s roletkou - Dan uvádí co dělat když vyžadujeme napojení makra na roletku takže tam si to nejděte.
Editoval neutr (26. 7. 2019 16:22:29)
Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ