Pak se ale nejedná o souvislou řadu..
S pomocným řádkem.
Dvě varianty:
1. nejdelší po sobě jdoucí výsky jakéhokoliv znaku
2. nejdelší po sobě jdoucí výsky konkrétního znaku
Myslím, že to určitě někdo dokáže hodit i do matice bez pomocného řádku.
Všechny buňky, které se nemají zamykat se musí nastavit přes formát buněk.
Označit všechny buňky Ctrl+A -> pravé tlačítko myši -> vybrat "Formát buňek" -> dále kartu "Zámek" -> zrušit zaškrtnutí u položky "Uzamknout"
P.S. Nejdříve se samozřejmě musí odemknout list
Já bych to udělal takto
Popis jsem vám poslal do mailu
toto?
Case "Změna - Potvrzení"
'??? Toto je dobře? txtZmenaRozhodnutiZadost0 = arrZmena(6, i)
txtZmenaPotvrzeniRozhodnuti = arrZmena(6, i) 'nemá tam být spíš toto?
Problém byl v tom, že jsem nekontroloval spZn při načítání do arrZmena. Pak se tam dostala i spisová Sp.Zn "z" a její prázdné údaje přepsaly ty správné.
id = UserForm1.txtSpZn.Value ' načte číslo
On Error Resume Next
For i = 1 To posledniRadek - 1
If InStr(1, arrData(i, 81), "Změna") > 0 And id = arrData(i, 4) Then
ReDim Preserve arrZmena(1 To 12, 1 To j)
arrZmena(1, j) = arrData(i, 2)
arrZmena(2, j) = arrData(i, 31)
přesunul jsem id = UserForm1.txtSpZn.Value ' načte číslo, které bylo o pár řádků níž a přidal podmínku do if: If InStr(1, arrData(i, 81), "Změna") > 0 And id = arrData(i, 4) Then
MilaF napsal/a:
........ ale stále nefunguje vyhledání dat pro Zkoušku - Žádost 0
V tabulce v B16 jsou v textu "Změna - Žádost 0" dvě mezery ořed pomlčkou a v Case Select je jen jedna mezera. Text je jiný, proto samozřejmě nemůže fungovat.
Druhý problém: ReDim Preserve arrZmena(1 To 9, 1 To j) když do pole načítáte další prvky, musí být na to nastavené. Je potřeba změnit číslo 9 na 12: ReDim Preserve arrZmena(1 To 12, 1 To j)Normálně by to házelo chybu, ale zrovna v tomto místě je vypnuto hlášení chyb (kvůli kolekci), tak se chyba objeví až při pokusu načíst tyto (ne)zapsané hodnoty
Takže takový nástřel. Vyberu Sp.Zn "k" a pak si mohu vybírat změnu 1 - 15 v červeném políčku.
Nejsou ošetřeny chyby, takže pro Sp.zn "z" to nefunguje.
Je potřeba doplnit načítání jednotlivých údajů v proceduře cmdCZmeny_change. Je to tam naznačené, musí se dopsat všechny další možnosti podle stejného vzoru.
Do jednotlivých prvků se načítají data z pole arrZmeny
s tím, že:
v arrZmeny(1,i) jsou data ze sloupce B
arrZmeny(2,i) je sloupec AE
arrZmeny(3,1) je AF
4 je AG
5 je AH
6 je AI
7 je BU
8 je CC
v arrZmeny(9,i) je číslo změny vytažené ze sloupce CC
takže to zkuste doplnit, pak se pohnem dál....
rozhodně nemůže být cyklus for m=1 to 6 když m následně používáte jako index pole. Pole je standardně indexované od 0.
Takže for m=0 to 5 nebo If .Range("B" & kontrola.Row).Value = arrDruhZmenaProdlouzeni(m-1)
Mrknu se na to, ale "vydrž Prťka, vydrž" https://www.youtube.com/watch?v=0X_xmuyvTWU&ab_channel=fleximan228
To jsem zkusil - teda jen jednou :)
Ale asi to nezvládnu psychicky, abych se na to spoléhal. Jedině, že by to bylo v manuálu - "vždy při deklaraci proměnné se nastaví na 0".
Ale manuál jsem nečetl a hledat se mi to nchce :(
@elninoslov: Jen dotaz ohledně j = j + 1
Je to záměr nebo vám jen vypadlo j = 0? Mám zafixované, že vždy je třeba přiřadit první hodnotu, jinak se program může chovat "divně".
Je jistota, že pokud rovnou uvedu j = j + 1 (aniž bych předtím měl příkaz j = 0), že j = 1?
Jinými slovy, polud mám Dim j as Integer, tak j je automaticky 0? Vždy, za každých okolností?
Kdybyste sem vložil ten váš pokus, tak jsme mohli poradit, co bylo špatně.
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.