Příspěvky uživatele


< návrat zpět

Strana:  « předchozí  1 2 3 4 5 6   další »

Ještě bych zapoměl... nikdy předem nevím, kolik bude mít každá z tabulek řádků... max však 50.

Ahojte, měl bych na vás prosbu... opět si nevím rady.

Mám list evidence kontroly viz. příloha, potřebuji, aby se mi do jiného sešitu ukládaly pod sebe hodnoty z buňky celkem min. a to tak, že v jednom sloupci bude LK velké a ve druhém sloupci LK malé a aby byly tříděné podle datumu...

asi takto :

Malé LK Velké LK
20.9.2012 180 20.9.2012 210
21.9.2012 200 21.9.2012 190

Tušíte někdo jak toho dosáhnout pomocí maker (jsem začátečník a v tomto ohledu zcela mimo mísu :))?

Btw. sešit je jen provizorní, nejsou na něm žádná makra, je to jen kopie listu.

Předem děkuji za jakoukoliv snahu o pomoc.
Dejavu

Tak to je fajn :)

Díky moc

Perfektní, děkuji oběma za snahu pomoci, prošel jsem obě řešení a nakonec jsem se rozhodl pro řešení od KP57, protože vyhovovalo plně mým potřebám,tak doufám, že se Jeza.M nebude zlobit...
Jen bych se ještě rád zeptal, čím mám nahradit řádek:

NameCSV = ThisWorkbook.Path & "\cesta k souboru\soubor.csv"

Když je daný soubor umístěn jinde, nežli daná složka..

Sice možná hloupý dotaz, ale jakožto VBA téměř nepolíbený se až tak moc nestydím :)

Jinak ještě jednou velké díky oběma, toto bych asi nikdy nedal dohromady...

Dejavu

Dobrá tedy, v příloze zasílám soubor.

Je jen jeden, protože tento soubor se právě bude kopírovat. Bude to tedy ten vzorový, který si bude načítat data z oné databanky. Možná sem to špatně vyjádřil za což se omlouvám...

Takže ano, síťový soubor (databanka) slouží jako zdroj unikátních údajů.
Soubor (viz. příloha) má na databanku data (před uzavřením sešitu asi...) ukládat, ovšem duplicitní hodnoty eliminovat. A při každém spuštění souboru tyto data zároveň porovnat a případně stáhnout z databanky. Nebo bude možná lepší jen upravit makro pro přidání poznámky, aby se poznámka, či jméno a číslo operátora přidali do sešitu i do databanky...

list s hodnotami najdeš tak, že klikneš pravým tlačítkem v tabulce , vybereš seznam, poté only admin, heslo je zatím admin...
Pak už uvidíš data, která potřebuji v databance.

Takže jednoduše, tato data se musí po přidání makrem uložit v tomto listu( to běží) a zároveň se musí uložit v databance a při otevření sešitu se tato data musí porovnat s databankou a případně se z databanky musí chybějící přidat sem. ( bez duplicit)

Díky Dejavu

Přesně tak, chápeš správně :)

Soubory přiložit mohu, ale nejsem si jist, zda by to k něčemu bylo, zkrátka :

Mám poznámky v souboru na síťovém disku, na dalších dvou PC mám na disku "C" další soubor, kde se vyplňuje evidence. Jsou tam poznámky, které operátor vyplňuje, pokud již poznámka existuje, operátor ji jen vybere ze seznamu. Pokud neexistuje, operátor ji přez dialog přidá a poznámka se do sešitu uloží (je umístěna na jiném listu). Neuloží se však do onoho síťového souboru, který funguje jako jakási databanka. Takže když se pak onen soubor druhý den zkopíruje, nejsou zde nové poznámky a musí se opět přidat a takto každý den...

Snad to takto pomohlo, kdyby to ani tak nebylo jasné, přiložím tedy soubor.

Díky Dejavu

No, rozhodnutý nejsem, ale takto by to mělo také fungovat... bohužel to neběží a nevím kde je háček...
Co se záznamníku týká, tak s ním nevím, jak bych si pomohl vzhledem k tomu, že nechci daný sešit popřípadě CSV otevírat...

Zdravím všechny místní Guru,
5eším nyní tento problém a bohužel si nevím rady..

Jedná se o to, že mé dva stejné sešity umístěné na 2 PC používají poznámky typu (1. kus, 1. kus opeace 10, 1. kus operace 20 atp..) dále obsahují jména pracovníků a jejich čísla razítek. Dat může být max. na 200-300 řádků, více neočekávám..

Chci se vyvarovat toho, aby se poznámky psaly pokaždé jinak, proto ten seznam... a aby byly stejné, musím mít jejich databázi, ale vždy se může objevit nějaká nová poznámka, proto bych potřeboval, aby se přidávaly poznámky z obou sešitů do stejného souboru, který bude na síťovém disku a odtud si pak zpětně budou tato data tahat..

Bude to fungovat tak, že na každém z oněch 2 PC bude vzorová evidence, která se bude kopírovat, když bych tedy přidal poznámku normálně, uložila by se mi jen do té jedné dané evidence, ale vzorový sešit by tuto změnu již nezaznamenal...

Zatím jsem z internetu vytlačil toto, ale jsem začátečník ve VBA a makro nemohu rozběhnout, tak snad s tím něco zmůžete vy...

Dim CestaSouborDatabanka As String

Sub NacistData()

'cesta k sešitu se zdroji dat
CestaSouborDatabanka = ThisWorkbook.Path & "\databanka.xls"

PoleData = ZiskejDataTyp0("List Data")
PoleDataPrvniZaznam = Split(ZiskejDataTyp0("List Data")(0), ";")
PoleJmena = ZiskejDataTyp1("List Data", "JMENO")

End Sub

Function ZiskejDataTyp0(List As String)
'Tools / References / Microsoft ActiveX Data Objects Library x.x

Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim str As String
Dim Dotaz As String
Dim Pole

'navázání spojení
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & CestaSouborDatabanka & ";" & _
"Extended Properties=""Excel 8.0;"""

'sestavení SQL dotazu
'vyber veškerá data
Dotaz = "SELECT * FROM [" & List & "$];"

Debug.Print Dotaz

rs.Open Dotaz, _
cn, adOpenKeyset, adLockOptimistic

rs.MoveFirst
str = rs.GetString(adClipString, , ";", vbCrLf)
str = Left(str, Len(str) - 2)

Pole = Split(str, vbCrLf)

ZiskejDataTyp0 = Pole

'ukončení spojení a uvolnění z paměti
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing

End Function

Function ZiskejDataTyp1(List As String, Sloupec As String)
'Tools / References / Microsoft ActiveX Data Objects Library x.x

Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim str As String
Dim Dotaz As String
Dim Pole

'navázání spojení
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & CestaSouborDatabanka & ";" & _
"Extended Properties=""Excel 8.0;"""

'sestavení SQL dotazu
'vyber neprázdné, neduplicitní,
'vzestupně seřazené položky daného sloupce
Dotaz = "SELECT DISTINCT " & Sloupec & _
" FROM [" & List & "$] WHERE " & _
Sloupec & "<>'' ORDER BY " & Sloupec & ";"

Debug.Print Dotaz

rs.Open Dotaz, _
cn, adOpenKeyset, adLockOptimistic

rs.MoveFirst
str = rs.GetString(adClipString, , ";", vbCrLf)
str = Left(str, Len(str) - 2)

Pole = Split(str, vbCrLf)

ZiskejDataTyp1 = Pole

'ukončení spojení a uvolnění z paměti
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing

End Function

Kód se mi vždy zastaví v tomto místě :

rs.Open Dotaz, _
cn, adOpenKeyset, adLockOptimistic

Předem děkuji za jakoukoliv radu.

Problem solved :)

Tak problém byl jen v režimu kompatibility, ve kterém se mi celý sešit spouštěl, uložil jsem sešit jako :

"sešit aplikace excel s podporou maker"

A nyní mohu provádět úpravy zcela bez problémů :)

Tak přeci sem něco objevil... jakmile chci cokoliv upravit v listu 2, nebo v makru, které automaticky zobrazí tento list, a poté to uložím, vyskočí mi chybová hláška viz. příloha, zatím jsem nepřišel na to, čím to je... dá se s tím něco dělat ?

Tak ty si dobrej kouzelník :)
Je to perfektní, začínám se tím prokousávat a zatím to vypadá moc dobře...

Ještě to zkusím o pár věcí doplnit a prdnu to sem kdyžtak do nového topicu, byl bych pak rád, kdyby si mi na to dal nějakou zpětnou vazbu, třeba se i něco přiučím..

Ještě jednou díky
Dejavu

Jo jo, to by bylo úplně ideální :)

Paráda, tak už to jede :)

Tak tvé řešení je parádní, ještě nemám vše vyzkoušené, protože to musím předělat do svého sešitu, jelikož mi to jede v režimu kompatibility...

Přesto tvé řešení má pro mne jednu celkem zásadní chybu a to, že výpočet minut nepočítá s půlnocí...

tedy pokud mám čas 11:45 až 00:45 nezobrazí se očekávaných 60 minut, ale něco přez 700 minut...

Zatím jsem ale tvému řešení úplně neporozuměl, tak si nejsem jist, jak to tam dotlouct...

Ok, zatím to vypadá asi takto...


Strana:  « předchozí  1 2 3 4 5 6   další »

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