Ak dáte do bunky B2:
=INDEX(B:B;A1)
alebo spomínaný
SK
=INDIRECT("B"&A1)
CZ
=NEPŘÍMÝ.ODKAZ("B"&A1)
tak vzorec vráti hodnotu, ktorá je v riadku ktorý určuje hodnota v A1.
A ak by ste chcel meniť súradnice aj po stĺpcoch, napr stĺpec by určovala hodnota v B1 a riadok A1, tak napr.:
SK
=OFFSET(INDEX(A:A;A1);;B1-1)
CZ
=POSUN(INDEX(A:A;A1);;B1-1)
alebo, ak by ste poznal aspoň z brucha rozsah stĺpcov tak napr.:
=INDEX(A:XX;A1;B1)
Keďže ste to nepopísal, tak ako by som potreboval, tak sa pokúsim ja.
K2=Pomocná bunka (aktuálne 1.1.2015)
K3=prírastok (aktuálne 100)
K5=Výsledný dátum K2+K3 (aktuálne 11.4.2015)
TextBox=aktuálne 1.1.2015
-Vstúpim kurzorom do TB (TextBox), zmením dátum na 2.1.2015, stlačím ENTER alebo odídem z TB.
-Zadaný dátum sa prenesie do K2, a v K5 bude už 12.4.2015.
-Vstúpim do TB a zmažem hodnotu, vystúpim z TB alebo stlačím ENTER.
-TB je prázdny, K2 si stále uchováva poslednú hodnotu 2.1.2015 a K5 poslednú vypočítanú hodnotu 12.4.2015.
-Vstúpim do TB a napíšem 3.1.2015, stlačím ENTER alebo odídem z TB.
-K2 sa aktualizuje na 3.1.2015, a K5 sa prepočíta na 13.4.2015
-Vstúpim do TB a napíšem chybný dátum "abc" alebo "4.1.20151", stlačím ENTER alebo odídem z TB.
-Obdržím hlášku o chybe, a kurzor sa vráti do TB. Hodnoty v K2 a K5 ostávajú posledné validné.
Chyba bude iba vo vzájomnej komunikácii, asi sa len nerozumieme.
Presne tak, pre každý riadok musí byť vlastná skupina. Podstatné ale je, aby boli objekty v skupine celé. Vytvoríte si len jednu, označíte si skupinu (box + prepínače, pomocou Ctrl), dáte Ctrl+C, a potom už iba kliknite na ľavú hornú bunku miesta, kde má byť kópia skupiny, a tam dáte Ctrl+V. To máte za 1 minútu.
Horšie je to potom v tom, že musíte v každej skupine prepínačov kliknúť pravým tl na jeden prepínač - Formátovať ovládací prvok - záložka Ovládací prvok - klik do Prepojenie s bunkou - a klik na bunku v ktorej má byť voľba - OK.
Skúste prosím inak popísať problematiku, asi som to nepochopil správne.
Popíšte prosím krokovo, čo robíte, a čo kde má v ktorom momente byť (prosím názvy buniek, TextBox môžete volať "okýnko" ). Pretože zatiaľ mi to tak ako som to pochopil nepripadlo úplne nezrealizovateľné.
Ja teda vôbec neviem prísť na to, na čo sa pýtate. Pozerám na ten Váš obrázok z "popisu" ako Ďuro do makových slížov.
-V prvom rade, sem s prílohou - Exceláckou prílohou.
-Vy neviete ani stĺpec ani riadok, v ktorom sa hľadané ID nachádza ? Alebo som to prehliadol.
-Z ktorej z tých dvoch tabuliek a ktorej oblasti čerpáte vstupnú (vyhľadávanú hodnotu), a z ktorej chcete vytiahnuť nájdený údaj/e ?
-Môže nastať, že v prehľadávanej oblasti nastane viac výskytov jedného ID?
Vzorce - Zobraziť vzorce - klik na spojnicu označenia riadkov a stĺpcov - dvojklik na hociktorú hranicu medzi hlavičkami stĺpcov.
Stĺpce sa rozšíria na takú hodnotu, akú má najširší vzorec v stĺpci. Pohľadom to musíte nájsť...
Palooo ukázal tú sofistikovanejšiu cestu.
Tu som urobil aj "blbú" BruteForce metódu. Ak bude treba urobím popis... Skúste.
Tak ?
Na číselník nepotrebujete kód. Napr.
Alebo "hrubou silou" ...
Ja som to riešil trošku inak, žiaľ som to už včera nestihol.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim R As Long, RNG As Range, TR As Long, TC As Integer, TV
With Target.Cells(1)
TV = .Value: TR = .Row: TC = .Column
If TC < 3 And TR > 2 And TV <> "" Then
Set RNG = Cells(3, TC).Resize(Cells(Rows.Count, TC).End(xlUp).Row - 2)
On Error Resume Next
R = WorksheetFunction.Match(TV, RNG, 0)
If R <> 0 And R + 2 <> TR Then
MsgBox ("Skok na 1. nájdený zhodný " & Choose(.Column, "kód", "ean") & " na riadku " & R + 2)
Cells(TR, 1).Resize(, 2).Value = Array("zadaj kód", "")
Application.Goto RNG(R)
End If
End If
End With
End Sub
Reaguje to aj na kód aj na ean, maže hodnotu, preskakuje na predošlú, chcel som ale ešte doriešiť situáciu ak nastane zmena vo viacerých bunkách naraz.
Inak to vypíše správu aj s riadkom kam pôjde, ale vidím ešte neduhy, napr. čo pri zmene vo vnútri tabuľky (nie na konci), treba doriešiť pokračovanie v hľadaní za aktuálne zmeneným riadkom, ak nieje posledný a ak nebol nález... Proste vždy hľadám možné problémy.
No tu asi nepôjde o zlučovanie listov, ale iba prepojenie dát. Ale ak chcete pripojiť data z jedného lisťu do druhého, a potom neskor znova, len na prvy voľný riadok.
Urobte peílohu kde bude cca 10riadjo dát, a vysledky alé by mali byť v tej druhej tabulke. Na reálnom príklade sa bude praxovať lepšie.
Zmente v procedúre listu "zaznam"
Private Sub Worksheet_Change(ByVal Target As Range)
riadok
If Not IsNumeric(Bunka.Value) Then
na
If Not IsNumeric(Bunka.Value) Or Right(Bunka.Value, 1) = "+" Or Right(Bunka.Value, 1) = "-" Then
Skúste pridať nejakú krátku prílohu s príkladom (vymyslené dáta).
Presne takto si myslím, že to janci.bris tým nelogickým popisom myslel. Len som nevedel prísť na takýto parádny vzorček. Suprový.
Ja som si to urobil ešte na skúšku aj s pomocnými stĺpcami bez makra. Ale toto nemá chybu.
Do IF si ho už hádam obalí
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.