< návrat zpět

MS Excel


Téma: Údaje z jedného zošitu do rôznych zošitov rss

Zaslal/a 19.2.2023 22:02

DenisV jednom zošite mám zoznam mien a čísel bytov. V iných zošitoch tento zoznam načítam do makra a ďalej s ním pracujem.
príklad:
načíta: Set byt_meno = Worksheets("list2").Range("b2:c52")
vyhľadá: Cells(ria, 9) = Application.WorksheetFunction.VLookup(Cells(ria, 6), byt_meno, 2, False)
(toto je v nejakej IF konštrukcii. )

Aby to takto fungovalo musím mať tento list v každom zošite kde to potrebujem. Zoznam treba aktualizovať vo všetkých zošitoch a to je prácne.
Mám takú predstavu, že by sa tento zoznam podľa potreby načítaval do kódu v rôznych zošitoch z jedného (materského) len neviem ako. Budem vďačný za každú radu a pomoc.
Dokonca som počul, že sa dajú údaje načítať aj zo zatvoreného materského zošita.

Zaslat odpověď >

#054494
elninoslov
Isteže, dajú sa získať dáta bez otvorenia. Ale je potrebné priložiť anonymizované prílohy. Je potrebné totiž konkrétne vedieť veľa vecí, názov listu, kde čo je, aký typ dát (zdroj tabuľka či Tabuľka), aplikácie filtrov (inak sa zisťuje posledný zaplnený riadok), odsadenie tabuľky od začiatku, sú iné dáta pod ňou (ovplyvňuje výpočet oblasti, je potrebné vedieť identifikátor začiatku a konca), dokonca je možné použiť aj PQ dotaz na ťahanie dát z iného súboru...

To takto z brucha nejde.citovat
#054495
Denis
nevzalo prílohu pardoncitovat
#054497
elninoslov
Ak je príloha XLSM, musíte ju zabaliť do ZIP/RAR. Max veľkosť okolo 300 KB.
Inak prečítal som si ten Váš popis ešte raz. Vy máte pevne daný súbor so zoznamom, pevne daný list aj oblasť, všetko uložené v pevnej zložke? Tak si urobte iba linky v bunkách v tých cieľových súboroch. Alebo v nich nemôžu byť všetky tieto dáta?citovat
#054498
Denis
achjaj
Příloha: rar54498_jedenzoznam.rar (52kB, staženo 3x)
citovat
#054499
elninoslov
Takže takto vyzerá zdroj - ten zoznam. A Vy teraz v iných zošitoch potrebujete zistiť podľa čísla bytu meno.

1. Kde je tento zoznam uložený? V rovnakej zložke ako tie iné súbory, z ktorých budete k zoznamu pristupovať? V inej zložke, ale na pevne danom mieste? Na variabilnom mieste (+info ako zistíme jeho adresu)?

2. Koľko krát potrebujete k súboru so zoznamom pristupovať? Tá premenná "ria" je z cyklu alebo nájdený riadok?

3. Ten zoznam je nutné uchovať v tých iných súboroch?

4. Nestačí do tých iných súborov dať iba odkazy vzorcom na zoznam v pomocnom skrytom liste, a použiť aj klasický VLOOKUP v cieľovej bunke (bez makra)?citovat
#054500
elninoslov
Príklad, pre nájdenie 1 hodnoty v zatvorenom súbore. Princíp, zložíte si vzorec s odkazom:
Sub Najdi_V_Subore1()
Dim Co As Variant, CestaZoznam As String, SuborZoznam As String, ListZoznam As String, Vzorec As String

CestaZoznam = ThisWorkbook.Path & "\"
SuborZoznam = "JedenZoznam.xlsm"
ListZoznam = "List3"

Vzorec = "'" & CestaZoznam & "[" & SuborZoznam & "]" & ListZoznam & "'!"

Co = wsHladaj.Range("F1").Value2
With wsHladaj.Range("G1")
.Formula = "=COUNTA(" & Vzorec & "$B:$B)"
.Formula = "=VLOOKUP(" & Co & "," & Vzorec & "$B$2:$C$" & .Value2 & ",2,FALSE)"
.Value2 = .Value2
End With
End Sub
citovat
#054501
Denis

elninoslov napsal/a:

Takže takto vyzerá zdroj - ten zoznam. A Vy teraz v iných zošitoch potrebujete zistiť podľa čísla bytu meno.

1. Kde je tento zoznam uložený? V rovnakej zložke ako tie iné súbory, z ktorých budete k zoznamu pristupovať? V inej zložke, ale na pevne danom mieste? Na variabilnom mieste (+info ako zistíme jeho adresu)?
V rovnakej zložke

2. Koľko krát potrebujete k súboru so zoznamom pristupovať? Tá premenná "ria" je z cyklu alebo nájdený riadok?
je to cyklus, vždy keď sa generuje nejaká zostava

3. Ten zoznam je nutné uchovať v tých iných súboroch?
nie, len výsledky

4. Nestačí do tých iných súborov dať iba odkazy vzorcom na zoznam v pomocnom skrytom liste, a použiť aj klasický VLOOKUP v cieľovej bunke (bez makra)?
tie výsledné zoznamy sú rôzne a výsledok je premenlivý počet osôb na základe vyhodnotenia


.citovat
#054502
elninoslov
Získať s pomocou dolovacích vzorcov celý zoznam, nie je problém:
Sub Najdi_V_SuboreX()
Dim Zoznam(), CestaZoznam As String, SuborZoznam As String, ListZoznam As String, Vzorec As String

CestaZoznam = ThisWorkbook.Path & "\"
SuborZoznam = "JedenZoznam.xlsm"
ListZoznam = "List3"

Vzorec = "'" & CestaZoznam & "[" & SuborZoznam & "]" & ListZoznam & "'!"

wsTMP.UsedRange.ClearContents
With wsTMP.Range("A1")
.Formula = "=COUNTA(" & Vzorec & "$B:$B)"
With .Resize(.Value2 - 1, 2)
.Formula = "=" & Vzorec & "B2"
Zoznam = .Value2
.Value2 = Zoznam 'v prípade ak tam majú hodnoty zostať
'.ClearContents 'v prípade ak sa majú zmazať, a výsledky nebudú ťahané vzorcami v bunkách Hľadaj!G:G
End With
End With

'ďalej sa dá pracovať už aj s poľom "Zoznam" - bunky v makre nebude treba
End Sub
citovat

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