Příspěvky uživatele


< návrat zpět

Strana:  1 2 3 4 5 6 7 8 9   další » ... 239

OT:
@Stalker: To je pre mňa v skutku parádna zaujímavosť. O tom som netušil. Ten názov "historie" nedovolí na základe lokalizácie (v SK nedovolí "história"). Čo sa stane ak súbor vytvorený v SK s listom "historie" otvoríte v CZ Exceli???

Skúšate Vy vôbec tie moje súbory? Veď teraz ste mi poslal ako vzor v souhrn04 to Vaše pôvodné makro, neupravené, nefunkčné...
Tu máte upravené obe verzie aj 03, aj 04 (s výberom len 641* súborov).

V tom prípade máte zlú cestu, alebo tam nie sú súbory "*.xls". Ten riadok zmeňte na
If pj = 0 Then
MsgBox "Žádné soubory v adresáři:" & vbNewLine & Cesta, vbExclamation
Else
wsJmena.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(pj).Value = Application.Transpose(aJmena)
End If

Tá verzia s pomocou ADO, čo som poslal ako poslednú, funguje či nie? Skúšal ste? Je mnohonásobne rýchlejšia ako táto Open. Neporovnateľne. Chcete naozaj použiť túto Open metódu?

Nie do modulu ThisWorkbook, ale do modulu daného listu! Do príspevku s kódom som pridal aj prílohu s popisom kódu.

Čože ??? To je blbina. PQ môže ťahať milióny riadkov. Nemôžete zverejniť tie súbory?

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim rClickRng As Range, novycmnt As String

Const SLOUPCE_RCLICK_COMMENT As String = "E:F"
Const PREDVOLENY_COMMENT As String = "Nazdar Fero !"

Set rClickRng = Intersect(Range(SLOUPCE_RCLICK_COMMENT), Target)
If Not rClickRng Is Nothing Then
With rClickRng.Cells(1)
If .Comment Is Nothing Then
novycmnt = InputBox("Vlož nový komentář:", , PREDVOLENY_COMMENT)
If Len(novycmnt) <> 0 Then .AddComment (novycmnt)
Else
novycmnt = InputBox("Přepiš původní komentář", , .Comment.Text)
If StrPtr(novycmnt) <> 0 Then
If Len(novycmnt) <> 0 Then
.Comment.Text Text:=novycmnt
Else
.Comment.Delete
End If
End If
End If
End With

Cancel = True
End If
End Sub


EDIT:
Kód sa vkladá do modulu daného listu!
Pridávam aj prílohu s popísaným makrom.

Podobné niečo som kedysi robil, a bolo to na palicu. A to bolo len z listu do listu. Toto je zo súboru do súboru. Viete koľko môže nastať problémov?
Kontrola súboru, či je otvorený, prípadne otvoriť, potom zatvoriť. A teraz tie veci na palicu. Ako zistiť, či bol riadok pridaný alebo vymazaný? Po zmene je označený celý riadok. Väčšinou. Teda je označený riadok vyplnený? Tak bol asi pred tým zmazaný riadok. Je prázdny? Tak bol asi pridaný riadok. Ale to platí iba pre odobranie pridanie. A čo ošetrenie, keď sa vloží kopírovaním? Vtedy je vyplnený aj okolné sú vyplnené a celý je označený. Ale to len v strede. Ak vložím na konci, alebo zmažem na konci dát? Čo ak vložím/zmažem viac riadkov? Treba uchovávať niekde počet riadkov. Ďalej k tomu "Väčšinou". Riadky môžete predsa pridať/odobrať aj vloženým/zmazaním a posunutím nadol/nahor. Vtedy ako zisťovať čo ste urobil? Môže proste nastať neskutočne veľa logických problémov pretože nebudete vedieť presný následok, ale budete chcieť zistiť jeho príčinu a vykonať reakciu.

Podľa mňa by bolo lepšie, aby ten druhý súbor odkazoval pomocou PowerQuery na tej prvý. "tabuľky" urobte ako "Tabuľky" - Ctrl+T. PQ sa aktualizuje po otvorení druhého zošitu, alebo klikom na Údaje - Obnoviť všetko, alebo Ctrl+Alt+F5. A budete mať v druhom zošite rovnaké dáta.

Ono by to šlo pekne vytiahnuť aj cez PQ (síce pomalšie ako to ADO). Ale zase narážam na to, ako zistiť cestu k zložke Data na OneDrive, ak tá zložka nebude synchronizovaná na disku. Nemám to ako skúšať, a prestáva ma baviť googlenie 5

Pozrite si ten riadok kódu, čo som napísal. Selection.Cells.Count čo tam mám je adekvátne k tomu čo píšete. Navyše treba rozlíšiť samotné zisťovanie označených+viditeľných. SpecialCells vracia nelogicky úplne niečo iné ak sú označené bunky, a ak je iba jedna. Vtedy vráti všetky viditeľné riadky, a tým pádom Intersect vráti aj neoznačené. Ten môj riadok kódu ošetruje všetko, dokonca aj situáciu ak bude označená bunka skrytá.

On Error Resume Next
Set Oznacene = Intersect(ActiveSheet.Columns("B"), IIf(Selection.Cells.Count = 1 And Selection.EntireRow.Hidden = False, Selection.EntireRow, Selection.SpecialCells(xlCellTypeVisible).EntireRow))
On Error GoTo 0

Ak by Vám to šlo, znamenalo by to, že máte synchronizovaný ten SP priečinok do Vášho OneDrive na Vašom disku. A teda makro ťahá dáta vlastne z Vášho disku ako z normálneho adresára. Tie Vaše XLS, nie sú skutočné XLS, ale textové súbory oddelené tabulátorom s príponou XLS namiesto TXT (toto robia automatizované systémy). Skúste túto metódu cez ADO, ktorá to spracováva ako textové súbory, a dáta si rozloží. Je to mnoho-mnoho-násobne rýchlejšie, ako otváranie súborov.

Ale ak to bude tak, že máte iba link na súbor s makrom na SP, a nemáte to nastavené na synchro na Váš disk, tak neviem, ako to poriešiť.

Na OneDrive Dir() nefunguje. Podľa stackoverflow by malo fungovať toto. Ale ak to dobre chápem, tak iba ak sú to Vaše súbory vo Vašom OneDrive na PC, teda sa ukladajú do Vášho OneDrive adresára na Vašom PC.

Problém s OneDrive je ten, že tie súbory tam reálne na Vašom PC niesú až pokým ich nepoužijete. A ani sa Vám nezobrazia (zoznam), pokiaľ neprebehne aktualizácia. Nemám zatiaľ ako preveriť.

Môže to byť ale aj tak, že máte na sieti zdieľané súbory (nie Vaše na Vašom OneDrive), Vy máte iba zdieľací link, ktorý otvárate. To táto metóda fachať nebude, páč to hľadá súbory vo Vašom OneDrive na disku, kde ale nie sú. Takú adresu ako Vám to tam píše, totiž dostanem v tomto prípade - teda link.

To budem musieť na pokus doma zriadiť 2x MS konto, na 2 PC OneDrive, 1 zdieľací, 1 klient, prihlásiť na oboch OneDrive aj Office do MS kont. A potom sa toho zbaviť. No to neviem, či sa mi bude chcieť.

EDIT:
SharePoint je samostatne platený, tak neskúsim. Ale malo by ísť nalinkovať spoločný SP link do Vášho OneDrive. Možno to tak aj máte. Skúste len tú cestu zmeniť
Cesta = Environ("OneDrive") & "\" & Replace(Split(ThisWorkbook.Path, "/", 5)(4), "/", "\") & "\Data\"

Makro som robil určite ja.
2. Nič také makro nerobí. Rovno pri nájdení každého súboru, napíše jeho meno, a hneď natiahne z neho data. Teda nerobí najskôr zoznam súborov. Ale to je len "technikália".
3. Znovu technikália - tak to makro nepracuje. Žiadne určité poradie nemá stanovené. Berie súbory do radu tak ako ich nachádza v adresári.
"Při znovu oprášení souboru už nefungují cesty" - ??? Čo znamená oprášení? Aké cesty?
"nakoplé" - z čoho tak usudzujete?

Ja makro spustím a normálne dobehne, data natiahne, chybu nehodí... Ani keď ho spustím, ani keď ho krokujem.

Vám to hodí chybu? Na ktorom riadku? Nenatiahne údaje? Ktoré? Nesprávne vyhodnotí? Čo?

Napr. všetky obrázky odkážte na makro
Sub Click()
On Error GoTo CHYBA
ThisWorkbook.FollowHyperlink Address:=ThisWorkbook.ActiveSheet.Shapes(Application.Caller).TopLeftCell.Value
Exit Sub
CHYBA:
MsgBox "Chyba", vbExclamation
End Sub

a bude sa otvárať tá stránka, čo je zapísaná v bunke pod ľavým horným rohom obrázku. Alebo obrázkom nastaviť normálne prepojenie, upresnite na ukážke.


Strana:  1 2 3 4 5 6 7 8 9   další » ... 239

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