Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  44 45 46 47 48 49 50 51 52   další » ... 289

No trochu sa posnažte....
Lubo dal CZ verziu, tak si to prehoďte do SK/EN verzie (alebo akú máte)
maticový vzorec (Ctrl+Shift+Enter)
SK:
=IFERROR(INDEX($G$4:$G$10;MATCH(ROUND(C4-B4;3);ROUND($E$4:$E$10;3)))*A4;0)
CZ:
=IFERROR(INDEX($G$4:$G$10;POZVYHLEDAT(ZAOKROUHLIT(C4-B4;3);ZAOKROUHLIT($E$4:$E$10;3)))*A4;0)

alebo nematicový vzorec (Enter):
SK:
=IFERROR(LOOKUP(2;1/(ROUND(C4-B4;3)>=ROUND($E$4:$E$10;3));$G$4:$G$10)*A4;0)
CZ:
=IFERROR(VYHLEDAT(2;1/(ZAOKROUHLIT(C4-B4;3)>=ZAOKROUHLIT($E$4:$E$10;3));$G$4:$G$10)*A4;0)

Niektoré čísla počítali správne aj predošlé varianty, napr 99,1-99 alebo 99,3-99,2

Pridané ošetrenie všetkých možných stavov a chýb, čo ma napadlo...

Som teraz len na mobile...
Vyremujte riadok
On Error GoTo KONEC
Kde to zastaví?
Ta cesta "\__pdfhs\" existuje?
Čo obsahuje bunka B4?

Zápis som sa snažil urobiť "Vašim spôsobom".

Ak sa Range nevzťahuje na žiadny list pracuje s práve aktívnym listom. To môže spôsobiť nevratné zmeny, ak nevedomky spustíte makro nad iným listom. Preto je bezpečnejšie odkazovať na list, ktorého sa to týka. T tomto prípade Worksheets("mrp"). A aby ste nemusel pred každým Range alebo Cells alebo inou vlastnosťou, metódou, či procedúrou listu používať Worksheets("mrp"), tak je na to príkaz "With", ktorý značí, že všetko čo medzi "With" a "End With" zapíšete bodkovou notáciou (začína bodkou) sa vzťahuje práve k objektu zadefinovanému vo "With". Používa sa to aj ak idete meniť veľa vlastností nejakého objektu (napr. rozmery obrázku na nejakom liste).
Napr.
With Worksheets("mrp").Pictures("obr1")
.Left = 10
.Top = 20
.Width = 100
.Height = 150
End With

No skúste

V tom prípade by malo stačiť iba vymeniť slovo
List2
za slovo
ActiveSheet

Upravil som makro vyššie. Ak tam nechcete mať počítaný INDEX na bunku, tak sa dá makrom vytvoriť iba pole odkazov na dané bunky.
Pr.
Sub makro3()
Dim i As Long, Radku As Long, Posun As Long, Vzorce()
With Worksheets("mrp")
Radku = .Cells(Rows.Count, "A").End(xlUp).Row - 1
ReDim Vzorce(1 To Radku, 1 To 2)
For i = 1 To Radku
Posun = Int((i - 1) / 4) * 4
Vzorce(i, 1) = "=B" & 5 + Posun
Vzorce(i, 2) = "=B" & 4 + Posun
Next i
.Range("AJ2").Resize(Radku, 2).Formula = Vzorce
End With
End Sub

alebo jednoduchšie takto:
Sub makro4()
With Worksheets("mrp")
.Range("AJ2:AK5").Formula = Application.Transpose(Array(Array("=B5", "=B5", "=B5", "=B5"), Array("=B4", "=B4", "=B4", "=B4")))
posledni_radek = .Cells(Rows.Count, "A").End(xlUp).Row
.Range("AJ2:AK5").AutoFill Destination:=.Range("AJ2:AK" & posledni_radek), Type:=xlFillDefault
End With
End Sub

Tak B4 alebo B5? Vo všetkých bunkách AJ rovnaký odkaz? alebo vždy "riadkovanie" v AJ po 4-och riadkoch s odkazom na B4, ďalšie 4 riadky na B5, ďalšie 4 na B6, ...
Vyrobte prílohu, kde MANUÁLNE vypíšte vzorce, aké tam chcete mať.
Pr.
Sub makro2()
With Worksheets("mrp")
posledni_radek = .Cells(Rows.Count, "A").End(xlUp).Row
.Range("AJ2").Resize(posledni_radek - 1, 2).Formula = Array("=INDEX($B:$B,5+INT((ROW()-2)/4)*4)", "=INDEX($B:$B,4+INT((ROW()-2)/4)*4)")
End With
End Sub

Všetko záleží na mnohým veciach. Vyhodnotiť môžete v Initialize a zrušiť po Wait v Activate. Formulárové prvky meníte z makier v Moduloch alebo v Module Formu? Príklad uvarený z vody. Proste si vymýšľam, keď nedáte prílohu. Takto to funguje asi ako chcete, za predpokladu, že chcete z vody varené...
Stačí? Prispôsobíte si to?

V čom je presne problém ???

No a kedy teda platí

"kabaka" napsal/a:

Súbor sa automaticky makrom uloží a pred uložením vymaže text.

Naco je v vlozitpaticku ten
ActiveWorkbook.Save
keď ho nepotrebujete ukladať?
Veď stačí tá druhá proc. Workbook_BeforeSave - tá predsa hlavičku (u Vás päta, to len ja meliem o hlavičke, sorry) vymaže.

EDIT:
Stačí iba toto, nič viac:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Worksheets("Hárok1").PageSetup.CenterFooter = "Podklady spracovala: meno,priezvisko"
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Worksheets("Hárok1").PageSetup.CenterFooter = ""
End Sub

Pridanie hlavičky v BeforePrint predsa volá vlozitpaticku, a toto makro predsa ukladá ActiveWorkbook.Save, teda zavolá BeforeSave, ktorý spustí makro odstranitpaticku, a teda výsledok je, že skôr ako vytlačí, tak tú vloženú hlavičku aj odstráni.

Riešením bude asi pridanie vypínacieho príznaku.

Takže, pred tlačou sa má vložiť hlavička, a s touto vloženou hlavičkou s menom sa má súbor uložiť a vytlačiť. Po vytlačení tam hlavička s menou ostane. No pri manuálnom uložení sa má hlavička najskôr zmazať, a až potom súbor uložiť.
Hmm. No a načo sa vlastne pred tlačou ukladá súbor s menom v hlavičke, keď sa následne pri manuálnom uložení tá hlavička zmaže???

Ak dovysvetlíte logiku, tak to asi pôjde urobiť len pridaním príznaku alebo dočasným vypnutím Events ...

Logiku by to dávalo, ak by ste vytvárali kópie súboru s iným názvom alebo kopírovali uložený súbor inam ešte pred jeho zatvorením a znovuuložením a ztým pádom zmazaním hlavičky.

Sub vlozitpaticku()
Worksheets("Hárok1").PageSetup.CenterFooter = "Podklady spracovala: meno,priezvisko"
Application.EnableEvents = False
ActiveWorkbook.Save
Application.EnableEvents = True
End Sub

Ani nepamätám, kedy naposledy sa niekto niečo také opýtal. 9

Ak chcete podporte toto fórum.

Ten list môžete exportovať do PDF bez vytvárania kópie.


Strana:  1 ... « předchozí  44 45 46 47 48 49 50 51 52   další » ... 289

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse

Týden v roce

Petr92 • 16.7. 15:34

Řazení podle času v kategoriích

veny • 16.7. 11:34

špatný výpočet ze zisku - příčina?

Anonym • 12.7. 22:56

špatný výpočet ze zisku - příčina?

Jakoby • 12.7. 12:35

Řazení podle času v kategoriích

Marekh • 12.7. 9:55

Porovnávací Tabulka

Jess • 8.7. 20:49

Vzorec pro zkopírování obsahu buňky.

veny • 6.7. 8:28