V tom vidím ale docela zásadný logický problém.
1. Aktualizujem PQ, dôjde k výpočtu
2. Čiastka bude nahradená výpočtom Čiastka / Rate
3. Po nejakom čase aktualizujem PQ znovu (napr. doplnenie nových riadkov, alebo iné)
4. A skáčem na bod 1., ale hlavne potom na bod 2. !!! Čiže bude už vypočítaná čiastka znovu vypočítavaná (už podelené bude znovu delené).
Ak by ste mal tie tlačítka formulárové, tak by to šlo v pohode cez Application.Caller.
Riadok = ActiveSheet.Buttons(Application.Caller).TopLeftCell.Row
alebo rovno .TopLeftCell.Offset().
Ale keď máte ActiveX tlačítka, tak budete musieť prerobiť procedúru na odoslanie na parametrickú.
Sub OdosliMail(Riadok As Long)
Dim xOutMail As Object
...
xMailBody = "Zakázka číslo " & Cells(Riadok, "N") & " - " & Cells(Riadok, "O") & " jepřebalena" ...
...
End Sub
a potom volacie makro pre každé tlačítko s pevne stanovených dopredu zadaným riadkom
Private Sub CommandButton3_Click()
OdosliMail 3
End Sub
Private Sub CommandButton4_Click()
OdosliMail 4
End Sub
...
Čo je identifikátorom človeka v oboch listoch? PIN ?
Na čo slúži na List1 stĺpec P?
EDIT:
Príklad v prílohe.
Za predpokladu jedinečnosti kombinácie A+B takto
=SUMIFS(INDIRECT("'"&C$1&"'!C2:C100");INDIRECT("'"&C$1&"'!A2:A100");$A2;INDIRECT("'"&C$1&"'!B2:B100");$B2)
=SUMIFS(NEPŘÍMÝ.ODKAZ("'"&C$1&"'!C2:C100");NEPŘÍMÝ.ODKAZ("'"&C$1&"'!A2:A100");$A2;NEPŘÍMÝ.ODKAZ("'"&C$1&"'!B2:B100");$B2)
A ten vzor je zle, viď vyznačené pomocou Podm. Form.
Vzorec funguje. Čiarka je v EN. V našich končinách je oddeľovač parametrov bodkočiarka.
Za tou zostavou je slovne napísaný kanál. Máte tam "aktuálny kanál" / "Current Channel" alebo iný text? Pýtam sa preto, lebo cez CMD by sa mala dať vrátiť predchádzajúca verzia Office, spolu s dočasným zákazom aktualizácie Office. Tu je história, odkiaľ sa podľa kanála zoberie číslo.
Ak nepomôže ani to, môžem sa Vám v rámci časových možností pozrieť na makro, či sa nedá nejako optimalizovať.
EDIT:
Niekto tam ešte písal, že mu pomohlo zošit premiestniť do dôveryhodného umiestnenia
...What worked for me? I moved the workbook to a trusted location (as defined by Trust Centre Settings), Then it worked as it used to....
Akú máte verziu Office? Tento problém je nahlasovaný. Podľa moderátora MS z 13.9. by to aktualizácia 17928.20156 mala riešiť (aspoň vraj ľudia tak uvádzajú).
Ja mám Office 365 verzia 2410 (zostava 18112.20000) kanál beta, a trvá to na mojom 11 ročnom PC 5 sek. (Win 10)
EDIT: Teraz som to bol preveriť na druhom PC
Win 11 Pro verzia 23H2 zostava 22631.4169
Office 365 Verzia 2408 (zostava 17928.20156) Aktuálny kanál
trvá to 2 sek.
Z toho vyplýva, že musíte dať aktualizovať Office. Bude záležať na Vašom aktualizačnom kanály.
Treba zásah do registrov
https://www.majorgeeks.com/content/page/how_to_disable_downloaded_files_from_being_blocked_in_windows.html
A prečo sa teda vkladá za A001-A vpravo a nie vľavo ??? Keď pri B007-C sa vkladá vľavo a nie vpravo. Veď rovnako platí, že vľavo=vpravo ako vpravo=vľavo.
PS: Samozrejme som nemal na mysli celé riadky!
Zmeňte
If H(i, 1) = 0 Or LenB(H(i, 1)) = 0 Then 'ak H=0 alebo H="" tak pridaj riadok k riadkom na skrytie
na
If H(i, 1) = 0 And LenB(H(i, 1)) <> 0 Then 'ak H=0 a H<>"" tak pridaj riadok k riadkom na skrytie
???
A čo je spúšťačom vloženia riadkov ?
Čo určuje koľko riadkov vložiť ?
Pr.
Príloha?
(ak je to xlsm, treba to zabaliť do ZIP)
Toho je viac.
Musíte mať v prvom rade objekty pre každý jeden riadok popisov. Tie objekty musia mať názov "Popis01", "Popis02", ... a musia byť umiestnené na svojom mieste v obrázku.
Potom musíte tie indexy pripraviť v tom poli v makre Split("01,02 ...
Treba upraviť rozsah Range("R4:R13").
Všetko musí spolu korešpondovať v počte.
Ale mnohé veci sa dajú urobiť inak. Napr. globálna premenná aby sa nevytváralo to pole pri každej zmene označenia bunky, keďže toho bude veľa.
Alebo nepoužiť Filter na elimináciu v poli, ale kolekciu a mazať s kľúčom z nej.
Treba to ešte ošetriť na možné chyby (napr. chýbajúci objekt ...) ...
Ideálne by bolo to napasovať na reálnu prílohu, aby som aj ja videl ako sa to rýchlostne správa, a pokúšal sa nájsť schodné riešenie.
???
=SUM(INDIRECT("'"&ROW(OFFSET($A$1;;;E13))&"'!E57"))
=SUMA(NEPŘÍMÝ.ODKAZ("'"&ŘÁDEK(POSUN($A$1;;;E13))&"'!E57"))
E13 v súčtovom liste určuje posledný deň.
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.