Můžeš porovnat hodnotu zadanou do buňky s aktuálním jménem listu a zobrazit hlášku nebo kód ukončit:
JmenoMesice = Format(DateSerial([rok_vykaz], Target, 1), "mmmm")
If JmenoMesice = ThisWorkbook.ActiveSheet.Name Then Exit Sub
If ListExistuje(JmenoMesice) = True Then
'Přejmenování listu podle změny v buňce B6
Private Sub Worksheet_Change(ByVal Target As Range)
Dim JmenoMesice As String
If Not Intersect(Me.Range("B6"), Target) Is Nothing Then
If Target = "" Then
Exit Sub
Else
JmenoMesice = Format(DateSerial([rok_vykaz], Target, 1), "mmmm")
If ListExistuje(JmenoMesice) = True Then
MsgBox "List s názvem " & JmenoMesice & " již existuje, proto jej nebylo možné použít znovu v procesu automatizovaného pojmenování tohoto listu. Výchozí název listu můžeš ale přejmenovat ručně standardním způsobem zvolením jiného vhodného názvu.", vbExclamation, "Konflikt s duplicítním názvem listu"
Exit Sub
Else
Application.ActiveSheet.Name = JmenoMesice
End If
End If
End If
End Sub
Private Function ListExistuje(ByVal strJmeno As String) As Boolean
On Error Resume Next
ListExistuje = Not Worksheets(strJmeno) Is Nothing
End Function
Kde je zakopaný pes?
1) řádně nedeklaruješ proměnné.
2) práce s definovaným názvem ve VBA -> [rok_vykaz] nebo Jménolistu.Range("rok_vykaz")
3) Tvůj kód bude neustále provádět přejmenování při jakékoliv změně na listu
4) Není ošetřen vstup (Target) na zadání jiných hodnot než čísel z rozsahu 1 až 12
Já Ti to přece nenutím! Dělej si s tím co chceš.
Sub PridejList()
Dim JmenoListu As String
JmenoListu = "Tralala"
If ListExistuje(JmenoListu) = False Then
Worksheets.Add.Name = JmenoListu
Else
MsgBox "List s názvem: """ & JmenoListu & """ již existuje. Zvolte jiné jméno", _
vbExclamation, "Duplicita listů"
End If
End Sub
Private Function ListExistuje(ByVal strJmeno As String) As Boolean
On Error Resume Next
ListExistuje = Not Worksheets(strJmeno) Is Nothing
End Function
Začínám se učit Python, tak mě napadlo tahat data z ARESu pomocí něj. Soubor pythonu je převeden na exe. Makro zobrazí inputbox kam se zadá ičo, pokud projde validací (číslo nesmí být delší jak 8 znaků a musí souhlasit kontrolní součet) makro zavolá soubor exe a předá mu parametry. Python (exe) provede stažení dat z aresu a do souboru excelu vrátí textové hodnoty.
!!! oba soubory musí být ve stejné složce !!!
https://mega.nz/file/bU5lWb6Z#y8BxiiFw1-sXJc7lWdE5CBSWBhda642IPHchYC0yg00
V Tool -> Options na kartě Editor zaškrtni checkbox "Require Varible Declaration"
To tě dokope řádně deklarovat proměnné. Při předávání parametrů dávej pozor na jejich pořadí. Porovnej si kódy mezi sebou.
No, tak jak je u MS zvykem, tak svůj výtvor již nepodporuje (nenabízí ke stažení). Dvě možnosti buď stará verze v příloze, kterou mám ze své zálohy nebo si můžeš stáhnout upravenou verzi z GitHubu
Vím, že je to JSON. Reagoval jsem na tohle: Podařilo se mi jen natáhnout data přes PowerQuery, ale zde se mi pro změnu nedaří dát proměnnou IČ
Zkoušel jsem ve VBA vytahat data ze JSON podle návodů nebo videí na YT, Bez úspěchu.
Tak sem to zkusil nahulváta rozsekat přes fci MID.
Ičo v buňce A5, výsledek se vypisuje do okna Immediate
Adresa by měla být
https://ares.gov.cz/ekonomicke-subjekty-v-be/rest/ekonomicke-subjekty-res/
s konkrétním ičo
https://ares.gov.cz/ekonomicke-subjekty-v-be/rest/ekonomicke-subjekty-res/26041561
Proměnná by tedy měla být místo toho čísla, ne? S PQ se nekamarádím, ale možná by to šlo.
To přidání tlačítek na pás karet se provádí úpravou xlm toho konkrétního souboru pomocí "Custom UI Editor" (Koukni na youtube). Takže ono nastavení cestuje spolu se sešitem.
Cože to?
"Toto řešení s příkazem na panelu nástrojů ale nebude dostupné u jiných uživatelů, kteří tento sešit obdrží a budou s ním pracovat" ---> Proč?
Řešení bez fce FILTER
_xlfn vypadá, že tvůj excel neobsahuje použitou funkci. Jakou používáš verzi?
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.