Veď predsa tú cestu k obrázku musíte mať v nejakej premennej, veď ju načítavate cez LoadPicture(cesta) do Image1. No tak tú premennú uložte. Akú inú cestu k obrázku potrebujete, ako tú, čo už máte. Vytvorte si vo Forme globálnu premennú a do nej uložte cestu k obrázku v procedúre toho načítavacieho buttonu, a potom túto globálnu premennú s cestou budete mať dostupnú aj procedúre ukladacieho buttonu.
Približne takto
Dim Cesta As String
Private Sub btnNahratFotografii_Click()
Cesta = "d:\Dokumenty\Obrázky\Avatar01.jpg"
Image1.Picture = LoadPicture(Cesta)
End Sub
Private Sub btnZapisTPM_Click()
wsDB.Cells(2, 11).Value = Cesta
End Sub
Ak tam potrebujete zároveň zapísať aj zodpovednosť, popis závady a ostatné do jedného riadku v DB, tak to cez pole pôjde na šupu. Ak ten Form máte otvorený na zápis viac ako 1 položky, tak pri vytváraní novej vynulujte premennú Cesta, a to preto, ak by mohla nastať aj situácia, že obrázok nebude vložený. Lebo by sa vložila pôvodná cesta.
Aj nematicovo:
=SUMPRODUCT(1/COUNTIF(A1:A6;A1:A6))
=SOUČIN.SKALÁRNÍ(1/COUNTIF(A1:A6;A1:A6))
prípadne cez FREQUENCY
=SUMPRODUCT(--(FREQUENCY(A1:A7;A1:A7)>0))
=SOUČIN.SKALÁRNÍ(--(ČETNOSTI(A1:A7;A1:A7)>0))
všetko z prvého odkazu na Google.
Tak nejak som tušil, že si to všimnete
Môže tam byť aj
"<>"
Ide len o to nejako to podmieniť, lebo maticové vzorce často treba podmienkou prinútiť k "zmaticoveniu".
Napr.: (maticový vzorec : Ctrl+Shift+Enter)
=MATCH(TRUE;SUMIF(OFFSET(C3;;;;COLUMN(C3:L3)-2);"<>somarina")>=A3;0)
=POZVYHLEDAT(PRAVDA;SUMIF(POSUN(C3;;;;SLOUPEC(C3:L3)-2);"<>somarina")>=A3;0)
Aha, tak! Toto opravené nikdy nebude. Nefunguje bohužiaľ ani systém 1904.
EDIT: Máte nejaký spešl dôvod ísť 120 rokov dozadu?
Čo znamená "chybně zobrazuje" ? Mne funguje normálne (Excel 2019). Priložte prílohu.
Lenže vy tam máte desatinné čísla (stĺpec C), ktoré ste skryl iba formátom. Excel s nimi samozrejme ďalej reálne počíta. Formát je iba na zobrazenie. Treba ich zaokrúhliť, napr. :
=INT(A1*B1-A1+0,5)
=CELÁ.ČÁST(A1*B1-A1+0,5)prípadne
=MROUND(A1*B1-A1;1)
EDIT: Ale pozor, nemôžete len tak hocikde vo výpočte zaokrúhľovať, len pre vizuál. To je vysoko individuálne, podľa druhu výpočtu. Niekde časti, inde celok. Nikto netuší, čo tie výpočty u Vás znamenajú.
Zaregistrujte sa, aby ste mohol priložiť prílohu, a priložte ju. Mne to príklad vydedukovaný z obrázku počíta správne. Ale nikto nevie čo tam máte za čísla, aký formát, zaokrúhlenie, ... (prílohu zbavte citlivých informácií)
??? Tak takúto prílohu som teda nečakal, navyše bez popisu súvislostí v nej
Tak si rozoberme najskôr technikálie:
Spodná ľavá tabuľka:
- prvé dva stĺpce sú PSČ od - do ?
- tretí stĺpec je zóna, vzťahujúca sa k hornej tabuľke k hlavičke C2:P2 ?
Horná tabuľka:
1 - 30 kg ??? A keď to bude 1/2 kg ? Podľa mňa to musí začínať 0 - 30 kg.
- Max 2751 - 3000 kg ? A čo ak bude viac ?
Dolná pravá tabuľka:
- G25:M26 - to je čo ? Začiatočné 2 čísla PSČ ? Koncové ?
- musia to byť zlúčené bunky ? S tým sa zle pracuje.
- Raz je tam rozsah, a inokedy "jedno alebo druhé". Toto bude nemenné ?
- Hmotnosť do 1000 kg ? Tá istá otázka, čo ak bude viac ?
objem "cbm":
Ako vstupuje do výpočtu ?
Vzorcami bude toto ťažké. Budem dôverovať mepexg-ovi, že Vás pochopil, a že to v PQ dal
EDIT: 21.06.2020 00:14
Tak skúsim...
No nič, tak dám aspoň príklad...
Situácia bude podľa mňa riešiteľná chvíľku nato ako priložíte prílohu, nech si ju nemusíme vytvárať
Áno, ale aj tak musíte vždy vedieť čo hľadáte, lebo toto prehľadá OLE objekty (ActiveX), nenájde napr. ovál alebo klasické tlačítko, lebo to nie sú OLE.
A na novom Win je ten disk namapovaný ? Vidíte ten súbor v nejakom správcovi súborov (Prieskumník, Total Commander, ...) ? Ide Vám manuálne otvoriť ? Ak je odpoveď na všetko "áno", priložte makro.
Pre celý zošit:
Sub ChangesComboBoxesSettingBook()
Dim OLEObj As OLEObject, WS As Worksheet
Const CBID As String = "Forms.ComboBox.1"
For Each WS In ThisWorkbook.Worksheets
For Each OLEObj In WS.OLEObjects
If OLEObj.progID = CBID Then OLEObj.Object.Text = "pokus"
Next OLEObj
Next WS
End Sub
Pre jeden list:
Sub ChangesComboBoxesSettingSheet()
Dim OLEObj As OLEObject
Const CBID As String = "Forms.ComboBox.1"
For Each OLEObj In Worksheets("Hárok1").OLEObjects
If OLEObj.progID = CBID Then OLEObj.Object.Text = "pokus"
Next OLEObj
End Sub
@ marjankaj: Pravda, nevšimol som si, že som zamenil - za +
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.