elninoslov:
Na začiatok,ešte raz vďaka za pomoc! Vidím, že si si dal robotu a celé si to prekopal, ale nefunguje to tak akoby malo.
Z mapovaním diskov ani zo sieťou problém nie je (sú voľne prístupné).
Problém je to čo som písal v predchádzajúcom príspevku v bode 2. Už som skúšal niekoľko možnosti cez funkciu IsFileOpen, rozmýšlal som podchytiť zadávania hesla (ak zadáš heslo, tak urob toto),ale zatiaľ nič...
Potrebujem podchytiť stav kedy pri pokuse o OTV. súboru na zápis (po sieti), ak je už niekde otvorený, zobrazí upozornenie kto to má otvorené. To "nedobrovoľné" otv. na čítanie robí systém (excel) automaticky! Neviem či sme sa pochopili...
elninoslov:
Nie toto som mal na mysly. Skúsim vysvetliť takto, požiadavky zhrniem do týhto variantov (všetko riešené na firemnej sieti):
1, Pri otváraní excel súborov na "zápis" (pod heslom), zapíšeš do zoznamu, nič nezobrazíš (žiadne upozornenie a tak).
2, Ak sa pokusiš OTV. súbor na zápis a je otvorený inde na sieti, automaticky Ti súbor OTV. na čítanie-prezeranie (toto som nazval "nedobrovoľne" otv. na čítanie). Tu je požiadavka zobraziť (kto a kedy naposledy otvoril súbor pre zápis).
3, Nakoniec "dobrovolne" OTV. na čítanie pri ponuke zadávania hesla pri otvorení. Tu nezobrazovať bič, nezapisovať nič...
Skúšam už veľa kombinácií a zatiaľ horeuvedenému nevyhovuje nič...
Na dnešných testoch bolo všetko Ok. Lenže vznikla nová požiadavka, aby upozornenie (kto a kedy naposledy otvoril súbor pre zápis) chodilo len tým uživateľom, ktorí otvárajú súbory na čítanie "nedobrovoľne", t.j. vynechať tých, ktorí použijú tlačidlo "IBA na čítanie" pri otváraní.
Je možné nejak cez VBA vôbec "podchytiť" túto procedúru (rozlíšiť to)?
elninoslov:
Veľká vďaka! Na začiatku som riešil niečo podobné, len som tam mal jednu easy chybu. Z tvojho návrhu som len upravil vyhľadávanie na opačné:
For i = x - 1 To 0 Step -1 ' Opakuj pre všetky riadky od konca
While InStr(Riadky(i), vbTab & vbTab) > 0 ' Odstráň opakujúce sa Tabulátory
Riadky(i) = Replace(Riadky(i), vbTab & vbTab, vbTab)
Wend
Stlpce = Split(Riadky(i), vbTab) ' Rozdeľ roadky na stĺpce oddelené Tabulátorom
Subor(i) = Stlpce(0) ' Ulož názov súboru
Meno(i) = Stlpce(1) ' Ulož meno uživateľa
Datum(i) = Replace(Stlpce(2), " ", "") ' Ulož dátum, bez medzier
Cas(i) = Left(Stlpce(3), Len(Stlpce(3)) - 1) ' Ulož čas, bez čiarky na konci
Problém vyriešený, zajtra budem testovať vo veľkom...
Vďaka elninoslov!
elninoslov:
Vystihol si problém veľmi dobre. To "sledovanie" cez VBA mám už aplikované na cca 10 súboroch a zo zápisom (do txt) problém nie je (zápis jednoducho "počká").
Môj problém (import z txt, vyhľadanie a zobrazenia uživateľa, ktorý mal súbor posledný otvorený na zápis) som práve skúsil vyriešiť procedúrou cez doplnok (pripojeným ku každému MS Excel) a ono to funguje, len je to trochu zložité a pracné...Preto beriem každý podnet a nápad ako to zjednodušiť a vyriešiť!
Hav-Ran:
S tým prepisovaným som to mal nastavené na začiatku, veľmi jednoduché riešenie - lenže tých súborov (MS Excel) je okolo 50 a prístupy na ne sú nepravidelné. Keď si len predsatvím, že mám držať niekde 50 txt súborov - je mi zle...
Al:
Riešenie musí byť nezávislé od "uživateľa" (nemusí o tom ani vedieť).
Hav-Ran:
Toto zapisovanie mám už vyriešené, mne ide o to vyhľadávanie...
Inak všetkým PF 2015
Zdravím,
Dostal som úlohu, z ktorou sa trápim už nejakú hodinu...
Podnik má firemnú sieť, na ktorej majú určitý počet MS Excel súborov, ku ktorým pristupuje značný počet uživateľov cca 100 a vždy 1súbor môže mať otvorený na zápis len 1 uživateľ (logicky). Teraz chcú vedieť, kto konktrétne. Vyriešil som to ukladaním hodnôt (názov súbora, kto a kedy) cez txt súbor (viď príloha), kde sa mi nová hodnota ukladá vždy na koniec. Problém je, že opätovne načítavanie nemôžem riešiť cez list zošita, ale len cez premenné VBA. Základ je, že potrebujem nájsť hodnoty po riadkoch, porovnať posledný zápis z názvom súbora (práve otvoreným) a pri zhode zobraziť údaje z riadka.
Dim sValue As String
Dim myFile As String
Dim intFNumber As Integer
Dim lRow As Long
Dim lColumn As Long
Dim vData As Variant
Dim intCount As Integer
myFile = "O:\DIR\OTVOR_Doch.txt"
intFNumber = FreeFile
On Error Resume Next
Open myFile For Input As #intFNumber
If Err.Number <> 0 Then
MsgBox "Nie je nič!", vbCritical, "Error!"
Exit Sub
End If
On Error GoTo 0
'First row for data
lRow = 1
'Loop until the end of file
Do While Not EOF(intFNumber)
'Read data from file
Line Input #intFNumber, sValue
vData = Split(sValue, vbTab)
Loop
Close #intFNumber
Zatiaľ mám toto. Lenže po čase som zistil, že údajov v txt súbore je tak veľa že hľadanie je značne problematické. Znalý programovania, máte z tým niekto skúsenosti viete poradiť ako na to? Aspoň "nakopnutie" by pomohlo...Vďaka!
Chlapi vyriešené, pomohlo (Stalker). Vrela vďaka!
Na Google som nepochodil ani na office.lasakovi.com (tam má práve len tú možnosť zmeniť celý komentár). Hľadám odpoveď od človeka z oboru..aj takto.
dream2003 napsal/a:
označ si část textu v komentáři a v office 2010 na kartě "domů" normálně změnit písmo barvu mám zakázanou
dream2003 napsal/a:
font a velikost písma změnit lze i samostatně nikoli již barva písma
Cez VBA vkladám do komentára hodnoty (text). Mám to na viacej riadkov oddelené prázdnymi riadkami, ale potrebujem to rozlíšiť farebne a veľkosťou písma. Ide mi meniť font len celého komentára, nie je možné meniť font po riadkoch zvlášť?
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.