Zdravím,
Mám tu výzvu, na ktorú neviem nájsť odpoveď. Je možné (cez VBA) importovať komentár z bunky z iného zošita do aktívneho zošita (do bunky) bez otvorenia zdroja (MS Excel 2016)?
Cez funkciu GetValue viem získať hodnotu, ale komentár..
Hypertextové prepojenia nie je možné použiť, ani otv. zošita zdoja (ani na pozadí). Na iných fórach som nenašiel odpoveď, stretol sa s takýmto niekto? Už dopredu ďakujem za akýkoľvek podnet, nápad.
Function GetValue(fPath As String, fFile As String, fWsh As String, fRw As Long, fClmn As Integer) As Variant
Dim xlApp As New Excel.Application, fString As String
fString = "'" & fPath & "\[" & fFile & "]" & fWsh & "'!R" & fRw & "C" & fClmn
GetValue = xlApp.ExecuteExcel4Macro(fString)
End Function
Možno je to pre niekoho nepochopiteľné (Jaja123), no s podobným problémom sa "trápi" dosť veľká skupina užívateľov vo svete. Súvisí to s prechodom na MS Office 2013-2016. Kódy, ktoré v Office 2010 pracovali primerane, teraz výrazne spomalili.
Skúšal som už niekoľko možností, no stále bez prijateľného výsledku. Je tu na fóre pár šikovných "borcov", vie niekto z nich poradiť? ĎAKUJEM za každý podnet.
Zdravím,
Po prechode na MS Office 2016 riešim výrazne spomalenie súborov (Excel). Vo verzií 2013 problém nebol. Prišiel som na to, že to spôsobujú činnosti zadávané cez VBA (prechod na 7.1). Skúšal som to ošetriť deklaráciami API funkcií -nepomohlo. Príklad spomaleného kódu:
Sub BezText()
Dim sTxt As String
Dim x As Integer, y As Integer
Dim bunka As Range
On Error Resume Next
sTxt = " ****** Vitajte, pre zápis použi ponuku po stlačení pravého tlačítka myši! ******"
Set bunka = ActiveSheet.Range("B1")
For y = 1 To 1
For x = 1 To 30
Start = Timer
delay = Start + 0.15
Do While Timer < delay
bunka = Space(x) & sTxt
DoEvents
Loop
DoEvents
Start = Timer
delay = Start + 0.15
Next x
Next y
Set bunka = Nothing
End Sub
Samozrejme je toho viacej, ale nie všetko môžem publikovať. Skúšal som viacej možnosti, no bez úspechu. Stretli ste sa s týmto problémom niekto? Ďakujem dopredu za akúkoľvek radu.
Vovka:
ÁNO máte pravdu, prepojenie na bunku (na liste)+ spárovanie s makrom je zatiaľ jediné funkčné riešenie. Síce som sa chcel tomu vyhnúť, ale iné riešenie zatiaľ neviem rozchodiť.
Testovanie "roka" som do príkladu nedával, pre komplikované testovanie adresárov, exis. súborov, ich otv. a podobne. S týmto som Vás nechcel zaťažovať.
Vovka:
Ďakujem za návrh, ale v tvorbe-úprave samotného grafu cez VBA nevidím až taký problém (to mi už pracuje celkom spoľahlivo). Problém je, že na Chart mám dva ovl. prvky typu combo box (viď pôv. príloha) a u tých neviem podchytiť ich zmenu, t.j. užívateľ vyberie mesiac 02/2017 aneb 11/2016 a pod.
Verziu mám EXCEL-2010 a túto zmenu neviem podchytiť ani cez záznamník makier...
Problémom je, že použitie záznamníku makier pri ovládacích prvkoch na grafe nezaznamená nič.
Zber údajov už mám ako-tak zvládnuté, len sa mi nedarí podchytiť procedúru zmeny ovl. prvku combo box na grafe.
Dobrý deň,
Grafy cez VBA nikdy neboli moja parketa...preto Vás chcem poprosiť o radu ako na to.
Mám veľa súborov (EXCEL-2010) na sieti, z ktorých chcem získavať podklady a v tom aktuálnom (rok 2018) robiť z toho graf. V prílohe uvádzam jednoduchý príklad. Súbory majú listy štandardne rozdelené podľa mesiacov, jeden súbor jeden rok.
Plus som tam doplnil jeden list - GRAFY, kde by sa to malo celé "graficky zobrazovať".
Pri tvorbe som narazil na problém ako podchytiť zmenu tohto ovládacieho prvku na grafe. Videlo sa mi to ako jednoduchšia možnosť ako ísť cez formuláre, ale teraz neviem...
Vie ma niekto nakopnúť, ani na iných fórach som zatiaľ nič nenašiel
Dopredu vďaka za Váš čas!
Pred chvíľou mi poskytli originál tabuľky (predchádzjúci príspevok), poradie stĺpcov trochu iné a niektoré bunky musia byť zamknuté. Kvôli tomu uzamknutiu mi vykazuje chybu.
Veľmi príjemné Novoročné prekvapenie od elninoslova. Na otázky tu sú odpovede a bude to úplne dokonale:
-Bude sa jednať vždy o XML s jediným mesiacom ? Nie systém generuje posledné 3-10 dní, zakaždým iný xml (názov, uloženie rovnaké)
-Bude sa jednať vždy o list na ktorom je iba jediný mesiac ? Nie, čo mesiac zvlášť list -príloha
-Zaujíma Vám iba hodnota RD pri položkách STA 3,6,10,15,18,21,26,28, a ostatné STA teda nie ? Nateraz nie
-Ak nebude dátum, ktorý obsahuje požadované STA v oblasti dátumov na liste, treba ho ignorovať a hodnotu RD neriešiť ? Ignorovať
-Dáta sa budú len aktualizovať, alebo prepisovať všetko ? Teda ak v XML nebude hľadaný dátum s hľadaným STA, ale v liste bude, má sa táto hodnota z listu zmazať ? NIE, to čo je raz v excel nech aj zostane. Zostane možnosť aj ručných korekcií mimo prenosu.
-Zaujímajú Vás vyššie spomínané hodnoty RD pri STA, ale v hlavičkách stĺpcov je niečo úplne iné. Skutočne majú hlavičky byť 1,2,2,11,12,13,21,22 ? Toto je vzor
-Množstvo týchto stĺpcov bude variabilné alebo pevné (8)? Stĺpce pevné, ale poradie trochu inak ako som uviedol pôvodne, konečnú podobu som vložil do prílohy
Už nejaký čas som nerobil vo VBA a niektoré veci človek zabúda a dopracovať sa do výsledku potom trvá nejaký čas. Elninoslov táto vaša reakcia ma prekvapila a klobúk dole, ušetrili ste mi hromadu času. Ďakujem veľmi pekne.
Dodatočne ďakujem mepexg za návrh...
Trocha som sa potrápil a aký-taký prenos už mám. Len mojou metódou hodnoty sú do stĺpcov a ja potrebujem vyberať len niektoré hodnoty STA (príloha) cez premenné. Zdrojové súbory xml sa budú totiž prepisovať, hodnoty skúsim načítavať a ukladať pri otváraní excelu.
Ináč ešte veselého Silvestra a šťastný Nový rok!
Power Query z rôznych dôvodov nemôžem využiť.
Dobrý deň. Ako každý tu na fóre potrebujem radu.
Systém mi generuje xml súbory a ja z neho potrebujem vyberať určité dáta mimo zásahu užívateľa.
Systém generuje dáta za posledných 3-5 dní (xml) niekde na disk (príloha). Tieto chcem cez premenné ukladať priamo do excel podľa vzoru (vysvetlenie komentáre príloha). Ako čo najjednoduchšie na to?
ĎAKUJEM za akúkoľvek pomoc!
Skúšam to porovnávať touto cestou, ale nedarí sa:
Sub OPEN_SUBOR()
Dim nazS As Workbook,cestaS As String,souborS As String, Kods as String
KodS = "abcd" 'toto na konci vymaže
cestaS = ActiveWorkbook.Path
souborS = ActiveWorkbook.Name
On Error GoTo Error_Handler
Set nazS = Workbooks.Open(Filename:=cestaS & "\" & souborS, Password:="", writeresPassword:=KodS)
Error_Handler:
"Tu niečo vykona"
Err.Clear
Set nazS = Nothing
End Sub
Help ako ďalej (stačí aj nápad), dopredu vďaka!
Zdravím,
Chcel by som poprosiť o radu...
Počas otvárania súbora potrebujem porovnať heslo práve otváraného súbora (na zápis) s premenou uloženou cez VBA. Ak bude OK a dátum od 25. po 30. v mesiaci súbor zamknem pod iným heslom. Z druhou časťou nemám problém, len ako na tú prvú časť? Ďakujem!
elninoslov (pre ostatných):
Vyhľadávanie v txt a zobrazovanie funguje správne (je jedno či použijem tvoju alebo moju verziu). Aj v konštantách nie je problém (nie som začiatočník).
Riešenie 1, situácie A - funguje správne.
Situácia B je tiež v poriadku (akurát nemusím sledovať, že je ReadOnly).
Riešenie 2, situácie A musím Ťa poopraviť. Pri otv.na zápis musí vždy zapísať do zoznamu. Ale kontroluje zoznam (a zobrazí upozornenie) len vtedy, keď je súbor otv. po sieti "nedobrovolne" na čítanie (t.j. vtedy keď je niekde už otv. na zápis po sieti). A vtedy sa excel nepýta na nič (bez môjho zásahu - žiadne heslo a pod.) a automaticky otv. na ReadOnly. A toto je jediný problém.
V stredu som nasadil vo firme verziu (na 10 súborov), pri ktorej zobrazí upozornenie (čo, kto, kedy naposledy) vždy keď je súbor ReadOnly. Upozornenie zobrazuje vpravo dole (formulár) a podľa prvých ohlasov to nie je až taký problém (ale stále je to otravné).
Elninoslov nechcel som Ťa zaťažovať, ale ešte raz vrelá vďaka - to tvoje vyhľadávanie funguje v poriadku!
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.