Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  64 65 66 67 68 69 70 71 72   další » ... 84

Číslo 1 jsem upravil, mělo by to uz fungovat.

K tomu vypisovani do listu - slo by to. Makro, ktere by uzivatele vypisovalo by se pravdepodobne spoustelo vzdy, kdyz by byl aktivovan list "Uzivatele", takze, aby se aktualizoval seznam lidi, muselo by se z tohotoho listu prepnout a znovu ho aktivovat. To vidim jako nejlepsi moznost

Excel 2007 nabizi moznost oznacit duplicity pomoci podmineneho formatovani. Na karte Domu/STyly/Podminene formatovani/Zvyraznit pravidla bunek/Duplicitni hodnoty...

Pokud mate Excel 2007, existuje primo funkconalita, ktera odebira duplicity. Na karte Data/Datove nastroje/Odebrat stejné.
Oznacite sloupec, kde se vyskytuji duplicity a po stisknuti tlacitka se v tom samem sloupci vypisi pouze unikatni hodnoty (duplicity budou vymazany, takze pokud potrebujete i puvodni data, doporucuji si sloupec s daty nakopirovat do jiného sloupce).
Pro Excel 2003 a nizsi doporucuji pouzit bud rozsireny filtr nebo kontingencni tabulku

A teda jeste moznou odpoved na 1. otazku: Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Application.UserName <> "Pepa" Then Exit Sub
Dim Zamceno As Boolean
Zamceno = True
For Each Sheet In Worksheets
If Sheet.ProtectContents = False Then
Zamceno = Zamceno * False
Msg = Msg & Sheet.Name & vbCrLf
End If
Next Sheet

If Zamceno = False Then
MsgBox Msg & vbCrLf & vbCrLf & "Sešit nebude uložen ani zavřen...", vbInformation, "Tyto listy nejsou zamčené"
Cancel = True
Else
Cancel = False
End If
End Sub

Zdravim,
na vasi druhou otazku by mohlo odpovedet nasledujici makro.
Pro jeho spusteni pri otevreni sesitu je nutne tento kod vlozit do modulu ThisWorkbook pod nazvem procedury: Private Sub Workbook_Open()
If Application.UserName <> "Pepa" Then Exit Sub
Dim Uziv(), Msg As String, i As Integer
Uziv = ThisWorkbook.UserStatus
For i = 1 To UBound(Uziv)
Msg = Msg & Uziv(i, 1) & " - " & Uziv(i, 2) & vbCrLf
Next
MsgBox Msg, vbInformation, "Sešit právě používají tito uživatelé"

Ja to teda moc nechapu, ale co vim je to, ze lze vlozit zaskrtavaci policko, ktere lze propojit s nejakou libovolnou bunkou - pri zaskrtnuti se ve zminenem policku objevi "PRAVDA" (pri nezaskrtnuti "NEPRAVDA"), takze je mozne vlozit vzorce s logickou navaznosti na tyto hodnoty bunky...

Zdravim,

toto je vzorec, ktery zjisti obsah posledni bunky ve sloupci A=INDEX(A:A;POČET2(A:A))

Jasna vec :),
mne zase desi normalni programovani, resp. nemam o nem nejmensi tuseni :)

Je to jednoduche: Sub countif()
Promenna = Application.WorksheetFunction.countif(Range("a1:a4"), ">2")
MsgBox Promenna
End Sub

Ahoj,
obecne muzu rict, ze není dobry menit zadani po kazdym kroku, kterej se při nějakým programovani udela (tady ty svoje VBA hratky nepovazuju za programovani, protože opravdu nejsem zadnej programátor 29).
Kazdopadne ale je vzdycky dobře si nejdřív promyslet, co chci, aby mi vylezlo, nez hned zacit něco delat. Predelavani je strasna věc, navíc se nektere věci musí predelat komplet.
To serazeni podle datumu urcite jde, jen to nebude takova malickost, jak si myslis, protože jen na první pohled v tom vidim dost práce a myslim, ze pridana hodnota urcite neprevysi vlozene usili. Takze to nechávám na tobe, muzes vymyslet, jak bys to udelal.
Pokud jde o promennou „DONE“ – nevim, proc jsem to tak pojmenoval, kazdopadne je typu Boolean, protože se do ni uklada jen „pravda“ nebo „nepravda“ podle toho, jestli jsou všechny součásti zakazky HOTOVE.
DONE = True
DONE = DONE * (cells(j,4) = „HOTOVO“)
Pokud vynasobis True * False, tak vznikne False a uz z toho nikdy nebude True, takze se ta konkretni zakazka nepresune do uzavřených…

Snad jsem to pochopil spravne a tady je muj vytvor...

Abych si to ujasnil, protože mi to moc jasny není…
Pokud bude ve sloupci D (na řádcích 4-26) napsáno „HOTOVO“, tak ten příslušný řádek (celý) překopírovat na volný řádek v oblasti „na uzavření“ (řádky 28-32). Je to tak?
Nepochopil jsem tu část, kde chceš vyhledávat stejný stroj – copak ta pravá část s ručně zadávanými daty nepatří k těm jednotlivým řádkům???

ahoj,
to by nemel byt takovy problem, pokud budes mit nejaky list aktivni, tak se dana zacatek do kodu formulare zadat promenna, do ktere se ulozi nazev aktivniho listu: dim list as string
list = activesheet.name
Pak na konci formulare das worksheets(list).activateNemam to vyzkouseny, ale melo by to jit...

Aha, netusil jsem, ze by mel někdo zajem tato data mazat – je to prinejmensim neobvykle, ale když to potřebuješ, tak si to muzes upravit – když znas reseni, tak je to snady 

1) Do promenne start se uklada vysledek standardni funkce listu POČET2, která vrátí počet neprázdných bunek oblasti (pokud jsou tedy bunky oblasti obsazovány od začátku jedna po druhé, tak je výsledek poslední neprázdnou bunkou)

2) CLng() je funkce VBA, která prevádí hodnotu v závorkách na datovy typ Long (textboxy totiž obsahují Text a je potřeba je nekonvertovat na cislo)

3) Application.WorksheetFunction.Match je vlastne funkce POZVYHLEDAT, takze najde polohu textu STROJ1, který máš ve své tabulce

4) stroj1_radek je pak jen nalezeni první prázdné bunky pro prislusny stroj


Strana:  1 ... « předchozí  64 65 66 67 68 69 70 71 72   další » ... 84

Uživatelské menu

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

Menu

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

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.

On-line nástroje