Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  274 275 276 277 278 279 280 281 282   další » ... 286

-Pridal som tlačítka na odobranie alebo pridanie riadku, na mieste, kde stojí kurzor.
-Môžeš samozrejme pridávať a mazať riadky aj cez pravý klik, cez tlačítka mi to príde rýchlejšie.
-Riadok na ktorom stojí kurzor sa vyfarbuje
-Pretekanie záznamov funguje aj pri zmene v iných listoch ako len v prvom.
-Maximálny počet listov je nastavený na 12. Ak príde k pretečeniu 12-teho listu, údaje zmiznú.
-Listy sa pridávajú a mažú automaticky.
-Makro som popísal, ale po popísaní som robil ešte dosť zmien, tak popis nemusí úplne presne sedieť, ale už sa mi to nechce kontrolovať.
-Na mojom PC je to rýchlostne OK, aj pri 12 listoch. Neviem aký máš PC vyskúšaj.
-Je to robené pomocou polí, pretože toľkonásobný prestup z VBA do Excelu by bol inak pomalší. Ešte by sa to možno dalo upraviť, čo sa rýchlosti týka, ale to už naozaj nemienim štelovať, pretože ako vidíš je to dosť zložitý kód.
-Ak tam budeš vkladať dáta cez kopírovanie, tak v žiadnom prípade nepoužívaj len Ctrl+V (alebo Vložiť). Zlikviduje to podmienené formátovanie, pretože Excel nevkladá len hodnoty pri obyčajnom Vložení. Vkladaj to cez tlačítko Prilepiť - Hodnoty (ikonka "1,2,3") na karte "Domov".

Snáď to bude dobré.

Mám pre Teba niečo hotové. Ale narazil som opäť na nedostatočný popis, a nelogickosti z toho vyplývajúce. Takže ešte doplňujúce otázky:

1. Ako budeš vkladať riadok do Listu1 ? Pklik na okraj a Vložiť ? Ak áno, tak treba ešte zmazať zostávajúce orámovanie tabuľky na 26 riadku (to tam automaticky zostane). Nieje problém, len to potrebujem vedieť.

2. Zmazanie riadku bude prebiehať ako ? Obdobne ako vloženie nového (viď vyššie), alebo iba označíš a dáš DELETE?

3. Tie čísla 1.-25. v prvom stĺpci tam vždy zostávajú nezmenené, neposunuté ? Ak áno, to treba doriešiť, napr. pri vložení riadku sa posunú. Záleží čo znamenajú tie čísla v reále, ak číslo riadku, musia ostať (upraviť sa), ak napr. číslo faktúry musia sa posúvať (teda nesmú ostať na mieste)

4. Ak nastane, že je v Liste1 viac ako 25 riadkov, kam sa má premiestniť posledný 26. riadok ? Do listu2 na prvé miesto, alebo do listu3 na posledné miesto?

5. Ak nastane, že je v liste1 menej ako 25 riadkov, teda 24, má sa na posledné miesto v liste1 premiestniť prvý riadok z listu2 alebo posledný riadok z listu3 ?

6. Čo sa stane, ak budeš mať viac záznamov ako 3*25=75 (na troch listoch) ? Majú sa nadbytočné ignorovať, teda sa zmažú posledné v liste 3, a ostatné sa posunie, alebo sa vytvorí 4. list a dajú sa tam ?

Algoritmus ako taký mám už hotový a funkčný, ale treba ho upraviť podľa týchto otázok. Prosím odpovedz jednoznačne a stručne na každú z nich.

No a čo to ostatné, čo som písal ?

Tých 15 stĺpcov (so skrytými 19) s listu2 potrebuješ dostať do 12-ich stĺpcov na list1, a to od riadku 41, od ktorého sú ešte data, a prepísať ich ???
Tým "HP K OPRAVĚ" myslíš "HP do opravy" ? Tam stačí dať :
=IF(AND(List1!C16="PR";List1!H16="I");1;"")
A tým "I" myslíš to "/" ?
Takže najskôr chceš podľa dát v liste1 vypočítať nejaké údaje do listu2 a následne (aj) tieto isté data z listu2 nakopírovať od riadku 41 do listu1?

Túto "slovnú úlohu" nechápem. Neviem čí to je ... Prosím, lepší (omnoho) popis.

No tak si namiesto
.Execute
daj
NazovSuboru = .SelectedItems(1)

Úprava, keďže nastáva problém s tým, že každá aplikácia môže mať iba jeden msoFileDialogOpen, tak po zatvorení tohto upraveného dialógu, ostáva stále filter CSV. Obnoví sa to až po reštarte aplikácie. Vyriešil som to tak, že som najskôr odložil filtre do poľa, vykonal, a následne z poľa pôvodné filtre obnovil. Je to potrebné preto, ak by sa niekde v aplikácii použil msoFileDialogOpen, kde je potrebný iný/žiadny filter.
Sub OtvorCSV() 'Otvor súbor CSV, obnv pôvodné filtre
Dim dlg As FileDialog, f As Integer, pfs() As String
Set dlg = Application.FileDialog(msoFileDialogOpen)
With dlg
With .Filters
If .Count > 0 Then 'Ak sú pôvodné filtre - uchovaj
ReDim pfs(1 To .Count, 1 To 2)
For f = 1 To .Count
pfs(f, 1) = .Item(f).Description
pfs(f, 2) = .Item(f).Extensions
Next f
End If
End With
.Filters.Clear 'Vymaž filtre
.Filters.Add "CSV Files Only", "*.csv" 'Nastav CSV filter
If .Show = True Then .Execute
Koniec:
With .Filters
.Clear 'Vymaž CSV filter
If Not Not pfs Then 'Ak boli pôvodné filtre - obnov
For f = 1 To UBound(pfs, 1)
.Add pfs(f, 1), pfs(f, 2)
Next f
End If
End With
End With
Set dlg = Nothing
End Sub

Sub OtvorCSV()
With Application.FileDialog(msoFileDialogOpen)
.Filters.Clear
.Filters.Add "CSV Files Only", "*.csv"
If .Show = True Then .Execute Else Exit Sub
End With
End Sub

Napr. aj takto ?

A toto ti nefunguje ?
Range("A1").Value = Year(Date)

Makro je spúšťané z udalosti OnChange listu Data, ktorá kontroluje všetky zmeny v liste Data, a ak došlo k zmene v danom stĺpci spustí makro. Túto OnChange metódu uvidíš, keď 2x klikneš vo VBA Editore na list Data.

Tie poznámky budem musieť dorobiť neskôr. Prečítal som to len zbežne. Momentálne ma "okupuje" syn :) Takže keď bude čas, OK.

EDIT: Formátovanie som teraz urobil na každom hárku cez Podmienené formátovanie (a to aj skupiny, aj podskupiny, aj data). Ak to tak môže byť, zmaž si vyapostrofované časti v procedúre pPresunFaza v konštrukcii With. Snáď som to dobre pochopil. Pekný deň.

EDIT2: Ešte malá zmena - odstránenie zabudnutých nepoužitých premenných a obmedzenie Fázy na číslo <43 v OnChange. Príloha vymenená za aktuálnu.

Práveže podľa mňa to potrebné kvôli jednoduchosti použitia je. Ak nieje známy počet vyplnených buniek, dá CONCATENATE_RANGE na konci delimiter. To sa dá ošetriť, napr tak, že sa vloží ako parameter už vypočítaná zaplnená oblasť, bez prázdnych buniek na konci. Lenže delimiter dostaneme aj keď bude medzi zaplnenou oblasťou prázdna bunka. Preto som dal cyklus. Možno sa to dá urobiť inak, toto je prvé čo ma napadlo, a ďalej som to už neskúmal :)

Ja by som to urobil pomocou UDF asi takto
Function fSpoj(ByRef Rozsah As Range) As String
Dim Bunka As Range
For Each Bunka In Rozsah
If Bunka <> "" Then fSpoj = fSpoj & IIf(Bunka.Address = Rozsah.Cells(1).Address, "", ", ") & Bunka
Next Bunka
End Function

Tak potom maticovým vzorcom takto, bez makra. Ak to chceš makrom tak ti to naprogramujem.

No na 2003 nefunguje výberový zoznam na mesiac. Nesmie sa používať odkaz na iný list. Dá sa to obísť cez Názov, ktorý odkazuje na daný list. Ďalej nefunguje podmienené formátovanie, rovnaký dôvod aj riešenie. Farby sú samostatná kapitola, pže novšie verzie majú "Advanced" farby, ktoré sa na starších nezobrazujú správne (resp. zobrazuje sa najpodobnejšia). Ostatné by malo fungovať.
Verziu 2007 kvôli tomu na testovanie nebudem inštalovať.

No vyskúšaj


Strana:  1 ... « předchozí  274 275 276 277 278 279 280 281 282   další » ... 286

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