Neznáme strukturu vašich dat, takže nemá cenu nic psát, ale možná by vám po nějakých upravách postačilo i toto. Kdysi jsem něco takového zkoušel.
Pokud jsou všechny zdrojové soubory totožné strukturou a jsou v jednom adresáři, jde to vcelku snadno makrem. Makro tahá ze souborů požadovanou hodnotu a ukládá ji do cílového souboru. Ale k napsání takového makra je potřebné mít alespoň jeden zdrojový soubor (resp. vědět odkud data brát) a cílový soubor.
Možná se hloupě zeptám, k čemu to může být dobré? Pak se s tím nedá ani počítat. Nestačí to takto ?
Použití makra ale nevidím jako nějaký přínos. Lze to řešit jen funkcí.
Sub součetA()
LastRow = Cells(Rows.Count, "A").End(xlUp).Row
MsgBox "Součet sloupce A:A je " & Application.WorksheetFunction.Sum(Range(Cells(1, 1), Cells(LastRow, 1)))
End Sub
Gůůůůgl
Private Function FormIsLoaded(UFName As String) As Boolean
Dim UF As Integer
For UF = 0 To VBA.UserForms.Count - 1
FormIsLoaded = UserForms(UF).Name = UFName
If FormIsLoaded Then Exit Function
Next UF
End Function
Sub Test()
MsgBox FormIsLoaded("UserForm1"), 64
End Sub
Je to již pět hodin, co přikládáte soubor . NO nic, je nepřeberné množství způsobů. Třeba i takto.
Nějak tam nevidím nikde "ukládací" příkaz.
protože jste zadal požadavek, že konkretní řádek musí být větší než nula, ale musí mu předcházet řádek s nulou
zkuste toto (maticově)
=SUMA((A2:A21>0)*(A1:A20=0))
Podle obrázků to určitě nikdo dělat nebude.
Pokud by to mělo být vzorcem tak snad takto, ale jednodušší je použít filtr, tak jak píše HavRan
Syntax
expression .Resize(RowSize, ColumnSize)
v řádku 33 chybí RowSize ? to je správně ?
elninoslov, já se domnívám, že quiterovi jde o to, že změna měsíce komplet vymaže údaje z listu DB, tedy se nelze vrátit k již vypracované docházce za hotový měsíc. Tedy si myslím, že změna měsíce by nejprve měla uložit do listu DB současný stav tabulky, pak ji vymazat a "nahodit" nově zvolený měsíc. Když se poté vrátím k editaci třeba února, měl by se z DB načíst do listu Rozpis k editaci nebo jen čtení.
zatím jsem našel chybu na řádku 33 makra v module a v načítání pole, načte datumy, ale ne hodnoty DNRS. Blíže jsem to zatím nezkoumal, bo neni čas.
Možná nějak takto, ale počkejte na řešení zkušenějších.
Private Sub CommandButton1_Click()
Sheets("Objednávky přeprav").Select
dd = Day(Now): mm = Month(Now): rr = Year(Now)
Columns("A:A").NumberFormat = "dd/mm/yy;@"
Columns("B:B").NumberFormat = "@"
pRadek = Application.WorksheetFunction.CountA(Range("a:a"))
Cells(pRadek + 1, "A") = Now
On Error Resume Next
If Month(Cells(pRadek, "A")) < mm Then
poradi = 1: GoTo px
End If
If pRadek = 1 Then
poradi = 1
Else
poradi = CDbl(Right(Cells(pRadek, "B"), 4)) + 1
End If
px:
On Error GoTo 0
poradiTXT = Format(Str(poradi), "0000")
rokTXT = Format(Str(rr), "0000")
mesTXT = Format(Str(mm), "00")
denTXT = Format(Str(dd), "00")
Cells(pRadek + 1, "B") = rokTXT & mesTXT & denTXT & poradiTXT
End Sub
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.