Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  178 179 180 181 182 183 184 185 186   další » ... 289

úprava ...
?

Ide, ale iba na skrytie, a aj to iba na xlSheetHidden. Na skrytie pomocou xlSheetVeryHidden pole nefunguje.

Mne sakra v Office 2016 vytváranie CreateObject prejde bez ohľadu na ne/naštartovaný Outlook.
Referencia by mala byť podľa Bruina potrená v prípade viac ako jedného konta v Outlooku (pre jeho voľbu).

Ale to vieme už od začiatku, to je tak nejak jasné.
Vyskúšal ste niektorú z tých 2 vecí čo som písal ?
1. Tools - References - zaškrtnúť "Microsoft Outlook xx.x Object Library" - OK

2. vymente riadky
Dim OutApp as Object
Set OutApp = CreateObject("Outlook.Application")

za riadky
Dim OutApp as Outlook.Application
Set OutApp = New Outlook.Application


Ak to prejde v prípade 1. - tak OK, ak to prejde v prípade 2. tak skúsime dorobiť podmienenú deklaráciu premennej a jej priradenie podľa verzie Office.

Niektoré požiadavky nieje možné vzorcami urobiť. Viď červený list. Rozhodnite sa, či skutočne potrebujete meniť vzorcované hodnoty, ak áno, dá sa urobiť makro.

Private Sub Worksheet_Activate()
If WorksheetFunction.CountIf(Sheet2.Range("T8:T108"), [CurrentUser]) > 0 Then
If MsgBox("Chcete vložiť novú výpožičku?", vbYesNo, "Výpožička") = vbYes Then
SendKeys "%N", False
ActiveSheet.ShowDataForm
End If
End If
End Sub

Pri kopírovaní kódu z fóra do VBA, vznikajú medzi riadkami nadbytočné prázdne riadky, čo robí galibu ak je riadok kódu rozhodený na viac riadkov pomocou " _" na konci - riešenie je zmazať nadbytočné riadky.

Prečo to testujete po jednej bunke, keď nepotrebujete pozíciu danej bunky ? Použite
WorksheetFunction.CountIf
alebo
IsError(Application.Match)
alebo s pomocou On Error
WorksheetFunction.Match
Obdobne sa s tým pohrajte, ak chcete zistiť či je CurrentUser v T iba vtedy ak nieje v G.

Tipujem na:
1. Chýbajúca referencia na "Microsoft Outlook xx.x Object Library"
2. Rozdielnu deklaráciu triedy (ktorú treba ošetriť pomocou
podľa Application.Version) napr.:
Dim objOL as Object
Set objOL = CreateObject("Outlook.Application")

vs
Dim objOL as Outlook.Application
Set objOL = New Outlook.Application

Za prvé neverím tomu, že sa to nedá rozsekať a/alebo parametrizovať procedúry, či rozhodiť do modulov. To je blbosť.
Za druhé nikto Vám to neurobí, bez toho, aby ste zverejnil ten kód, čo je logické.
Za tretie, len všeobecne, napr. si najskôr urobte iba base procedúru na kontrolu práv, napr Select Case, odtiaľ volajte s parametrom inú procedúru na skrytie/odkrytie. Ďalej odstráňte všetky Sheets("názovlistu").Select a rovno použite Sheets("názovlistu").potrebná_operácia.
To logovanie alebo čo to vlastne robíte, je asi nejaký zápis užívateľa a jeho akcie. Ak je tak, tak to je jasný kandidát na samostatnú procedúru
Sub LogProc(User as String, Akcia as Long, Cas as Double)
... zapíšte...
End Sub
...
Inak povedané, opakujúce sa časti kódu majú byť samostatná procedúra.
Opakujúce sa časti kódu so zmeneným parametrom, majú byť samostatná parametrizovaná procedúra.
...

Čo viac napísať, keď sme "slepí"...

Takže :
- 20 listov * 5 tabuliek na liste * 2000 riadkov v každej tabuľke * 5 stĺpcov v každej tabuľke = 200 000 riadkov a 5 stĺpcov ?
- Sú to Tabuľky (vložený objekt Tabuľka), alebo tabuľky obyčajné iba orámované ?
- Tie tabuľky sú teda vždy rovnako veľké, rovnako umiestnené, rovnako koncipované, a obsahujú iba meniace sa dáta (rovnakého typu) ?
- Ako tie tabuľky ťahajú dáta z iných zošitov, cez vzorec =[zošit]List!bunka ?
- Zošity sú v jednom adresári ?
- Mení sa názov tých zošitov, alebo názov listov, z ktorých sa čítajú údaje ?

- Prílohu vložte takú, na ktorej bude vidieť všetko potrebné, vymyslené mená a čísla, reálne tabuľky, reálne prepojenia, + nejaký ten zdrojový súbor.

Strašne málo konkrétnych informácií.

Veď to máte parádnu verziu. Ja som robil podstatne zložitejšiu, maticovú. Toto máte lepšie.
Čo si tam neviete nastaviť rozsah dát ? Je to v Definovaných názvoch. Ak aj tie oblasti chcete mať dynamické, pozrite, ako riešim dynamickú oblasť rngPolozky ja.

A napokon - sme zase tam, kde sme nechceli byť. Je dobré priložiť vždy čo najkompletnejšiu predstavu čo mám, a manuálne vytvorený výsledok čo chcem mať. A nie takto, že sa urobí komplik. vzorec, a potom poviete krok dva, že tam chcete ešte ďalšie 2 stĺpce, ale nepoviete ako, čo v nich má byť, aká je závislosť s týmto stĺpcom čo sme robili ... atď.

No a teraz keď si chcem pozrieť tú prílohu, už jej niet ...

Návrh vzorcom aj makrom. Makro dáva aj čísla, vzorcom doplniť aj čísla by bolo príliš komplikované.

Trošku si skráťte tú prácu s oblasťami:
Sheets("Vyjadreni").Range("B37:T51,L13:S16,M18:O18,Q18:S18,P20:S21,I27:I29,N27:S29").ClearContents


Strana:  1 ... « předchozí  178 179 180 181 182 183 184 185 186   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

vyhledání obsahu buňky

vfort • 18.7. 11:22

Názvy z řádků do sloupců Power Query

Alfan • 18.7. 10:01

Tlac 2 roznych tabuliek

loksik.lubos • 17.7. 20:43

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