Hmmm, no ja by som sa s tým aj pohral ... ale nechce sa mi ... no dobre teda ... tak len trošku ...
Pr.
Ale má to obmedzenia, viď popis. Bolo by lepšie to urobiť tak, že si súčty a odpady a balíky dáte na začiatok tabuľky, nie na koniec. Prípadne si to otočiť zvislo a a rovnako počty pred tabuľku.
1. variant - pri označení bunky v B:C sa posunie tlačítko k danému riadku k hodnotám. Stlačením sa zobrazí editovacie okno. "C" môžete aj schovať ak ho nechcete vidieť.
2. variant - Okno na zmenu hodnôt sa zobrazí pri dvojkliku na bunku s hodnotami v "I"
Nechce sa mi viac vychytávať muchy, ak neviem presne čo a ako chcete. Priložte manuálne vytvorenú prílohu ako si predstavujete výsledok. Kľudne to aj nakreslite v skicári :)
xlnc napsal/a:
...(teď se někdo jistě kousne a dá sem řešení :-)...
No a na niekoľko viet v bunke je už potreba UDF.
Napr takouto UDF, ale treba ju ešte doošetriť napr. na to, aby preskočila bunku,ktorá je zároveň parameter.
Function HLADAJ_BUNKU(Co As Variant, Optional Typ As Byte = 1) As Variant
Dim Bunka As Range, WS As Worksheet, CX As Long, CY As Long
On Error GoTo KONIEC:
With ActiveWorkbook
With Worksheets(1)
CY = .Rows.Count: CX = .Columns.Count
End With
For Each WS In .Worksheets 'Prehľadá všetky listy
With WS
Set Bunka = .Cells.Find(What:=Co, After:=.Cells(CY, CX), LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
End With
If Not Bunka Is Nothing Then Exit For
Next WS
End With
If Not Bunka Is Nothing Then
Select Case Typ
Case 1: Set HLADAJ_BUNKU = Bunka 'Odkaz na bunku
Case 2: HLADAJ_BUNKU = Bunka.Address 'Adresa bunky
Case 3: HLADAJ_BUNKU = Bunka.Parent.Name 'List bunky
Case 4: HLADAJ_BUNKU = Bunka.Worksheet.Parent.Name 'Zošit bunky
Case 5: HLADAJ_BUNKU = Bunka.Address(External:=True) 'Celá cesta
Case 6: HLADAJ_BUNKU = Bunka.Row 'Súradnica Y - riadok
Case 7: HLADAJ_BUNKU = Bunka.Column 'Súradnica X - stĺpec
End Select
Else
HLADAJ_BUNKU = CVErr(xlErrNA) 'nenájdené
End If
KONIEC:
If Err.Number <> 0 Then HLADAJ_BUNKU = CVErr(xlErrValue) 'iná chyba
Set WS = Nothing: Set Bunka = Nothing
End Function
Myslím, že tak ako navrhujete, to bude asi najschodnejšie.
Neviem, ako toto pomôže. Skúste to rozvinúť. Neviem ako získať z práve zmenenej bunky naformátovanej ako čas (teda číslo) informáciu o tom, či bolo zadané:
• 8,25 - číslo s desatinnou čiarkou, ktorá má byť premenená na ":"
• 8:25 - čas vo formáte "h:mm", čo je tiež desatinné číslo
• 0,350694444444444 -prípadne ešte (to ale nepredpokladám) desatinné číslo, ako skutočné číslo času, reprezentujúce čas "8:25"
Najskôr ste zmienil oblasť dát
...vyhledat v oblasti C1:E357...
...to co chci hledat se může nacházet kdekoliv (v daném sešitě)...
...SOUČIN.SKALÁRNÍ((B1:Z2000=A1)*ŘÁDEK(B1:Z2000))...
...odkaz zapsat do buňky A2...
...abych dokázal určit umístění (souřadnice)...
...odkaz(souřadnice) hledané buňky...
... i bez přiloženého excelu (který by pouze směřoval ke konkretizaci výsledného vzorce)...
Předtím jsem neuvedl, nevím jak moc je to podstatné, že se hodnota bude v oblasti dat vyskytovat právě jednou.
"elninoslov" napsal/a:
Vy viete čo chcete, ale neviete to dať na papier.
My vieme čo ste dal na papier, ale nevieme čo chcete.
Function UDF_DATUM_SUBORU(Subor As String) As Date
Application.Volatile
UDF_DATUM_SUBORU = FileDateTime(Subor)
End Function
alebo
Function UDF_DATUM_SUBORU2(Subor As String) As Date
Application.Volatile
UDF_DATUM_SUBORU2 = CreateObject("Scripting.FileSystemObject").GetFile(Subor).DateLastModified
End Function
A do bunky si dajte obdobný vzorec, kde E1 je cesta a E12 je súbor:
=UDF_DATUM_SUBORU(E1&E12)
A čo Vám bráni odpovedať na to, na čo sa pýtam ?
Kde je teda reálna príloha ?
Ten vzorec, čo som dal, nieje jednoduchý, a preto, aby sa dal ľahšie čítať sa používa Definovaný názov, ale kľudne si to môžete spojiť do jediného supervzorca, to je na Vás. Rovnako ako reakcie...
Aby ste vedel, ako sa dá vnímať rôznymi spôsobmi to, čo popisujete, tak mrknite na prílohu, čo všetko človek môže z popisu-nepopisu vydedukovať.
Šmarjá ... to je zas iný popis ako na začiatku, a príloha, čo so začiatkom nekorešponduje, a navyše nepriekazná (chýbajú tie "iné stĺpce" čo spomínate).
V buňce A1 bude hodnota(text, číslo)
Hmm, no ono "nahradiť" tú čiarku dvojbodkou tak, aby vznikol správny zamýšľaný čas nieje problém, rozdelením desatinnej a nedesatinnej časti a použitím TimeSerial(). Ale vidím tam problém, čo ak niekto zadá čas v korektnom formáte 8:25 (nie 8,25)? Vy nájdete v procedúre Worksheet_Change desatinné číslo, ktoré už zodpovedá desatinnému číslu skutočného času, ale to neviete, lebo pre makro to bude zase iba číslo, ktoré treba zmeniť na "správnu" formu čísla času - teda ten čas pokaká. Zatiaľ ma nenapadá možnosť, ako zistiť či bolo zapísané desatinné číslo 8,25, alebo čas 8:25, lebo v oboch prípadoch dostanete až výsledok = desatinné číslo.
Ak ten oddeľovací znak bude iný ako čiarka, tak sa to bude dať identifikovať a spracovať. Ale zase nesmie to byť bodka na EN Office, lebo tá je desatinným oddeľovačom na EN.
No tak to Vám potom z toho všetkého stačí len tá jednoduchá funkcia UDF:
Function UDF_OBSAH_SUBORU(Cesta As String, Subor As String) As String
Dim F As Integer
Application.Volatile
F = FreeFile
Open Cesta & Subor For Input As #F
UDF_OBSAH_SUBORU = Replace(Input(LOF(F), F), vbCrLf, vbNullString)
Close #F
End Function
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.