Nejste přihlášen/a.

Přihlásit se do poradny

 

Makro pro Excel

Od: kejikl® odpovědí: 11 změna:
avatar kejikl

Mám zdrojový soubor výpis.xls uložený v C:Usersubkejl.ADSDesktopKARDEX
Jsou v něm sloupce, které mě zajímají, C,G,H.
V C je identifikační číslo, v G počty kusů a H minimální počty kusů.

Z adresáře C:Usersubkejl.ADSAppDataLocalSAPSAP GUI mp si otevřu soubor, který má v sloupci B ono identifikační číslo.
Potřebuji do sloupce D nakopírovat počty kusů a do E minimální počty kusů.

Jak jsem zjistil, sloupec s B (ident.číslo) je třeba vyčistit funkcí VYČISTIT()
Umí prosím někdo toto makrem tak aby mi to fungovalo na jakémkoli souboru. (Zdrojový bude vždy stejně pojmenovaný a uložený na stejném místě.)

 

 

11 odpovědí na otázku
Řazeno dle hodnocení

 

 

hodnocení

2x
avatar clayman

Natahat si hodnoty z jineho excelu podle klíče jde jednoduše pomocí SVYHLEDAT popř VLOOKUP (v angličtině). Makro k tomu není potřeba, jen po každém otevření bude chtít povolit aktualizaci.

hodnocení

Problém je v tom, že si soubor do kterého chci tahat otevírám z podnikového systému SAP.
Tzn. bez těch vzorců.
Ty by mi tam právě doplnilo makro s funkcemi SVYHLEDAT, VYČISTIT apod.

Já jsem schopen si tam ty vzorečky ručně nacpat, makro ale tvořím záznamem a tudíž se všude ukládají absolutní cesty.
Soubor který otevírám ze SAP se vždy jmenuje jinak a makro pak nefunguje.

 

figurek*
hodnocení

2x

mohl byste sem vložit screen, ať vidíme, jak to vaše zaznamenané makro vlastně vypadá?

Každý vaším excelem otevřený soubor se vám objeví v kolekci otevřených souborů, která se jmenuje Workbooks.

Místo celé adresy D:TeammojezalohysmetištěHokus pokus.xlsm pak stačí použít pojmenování sešitu.

Příklad :

Workbooks ("Hokus pokus.xlsm") Sheets("Sheet1") Range("A1").Value vám vydoluje hodnotu z buňky A1, listu Sheet1, sešitu Hokus pokus. Když se odkazujete takto jménem, je úplně jedno, jestli je tento sešit, list a buňka aktivní nebo ne. Můžou být klidně i zamčené a zaheslované, ale to je fuk. Stejně se do nich vlomíte.

Teď vidím, že adminovi se tu nezobrazují zpětná lomítka.*ee* Admine. Sprav si to.:-P

 

lobo*
hodnocení

2x

Nějak mi není jasné, který soubor má obsahovat ono makro? Je potřeba makrem vkládat vzorce nebo stačí vložit hledané hodnoty?

Data ze souborů by se načetla do pole, které by se prošlo cyklem a výsledné hodnoty by se poté vložily zpět do souboru.

Zdrojový soubor obsahuje vždy pouze jeden list?

Jinak pojmenovaný soubor by nebyl problém. Použil by se dialog pro otevření souboru s přednastavenou cestou ke zdrojové složce.

hodnocení

Soubor výpis.xls si zařídím každý den s aktuálními daty. Bude na stejném místě a stejně se jmenovat.

Ze SAP si otevřu xls soubor, který se mi stáhne do nějaké Temp složky a otevře.
Jmenuje se pokaždé jinak.
Zde bych potřeboval spustit makro, které mi dosadí do požadovaných buňek vzorce, které ale budou počítat s tím, že se ten SAPový xls bude jmenovat pokaždé jinak.

Můj problém je, že jsem laik, který makro tvoří pomocí záznamu makra (tedy toho co dělám).
Tam se mi samozřejmě promítnou konkrétní názvy všech souborů včetně cest atd.
Pokud makro použiju na něco jiného, nefunguje.
To jsem asi ani neotevřel problematiku kde a jak je to makro vlastně uloženo.
Ukládal jsem jej do osobního sešitu maker, nevím zda je to správně.

hodnocení

Jde mi o hodnotu, jestli se bude vzorec počítat v makru, nebo ho makro dosadí do buňky a tam se vypočítá je jedno.

Zdrojový soubor bude obsahovat vždy jeden list Sheet1.

Soubor v kterém potřebuji zobrazit data bude vždy jinak pojmenován, bude mít rozdílný počet listů, rozdílně pojmenovaných.

Ideálně pokud mi někdo napíše makro a já dám kopírovat a vložit ve Visual Basic. :)

lobo*

Zítra, vlastně již dnes vložím soubor s makrem

 

Jediný problém je pojmenování souboru, protože vše ostatní očividně máte/znáte. Není nejsnažší cesta to ze Sapu vyexportovat, přejmenovat na "zdroj.xls", otevřít si soubor s makrem a spustit? Nebo mi něco uniká?

Šlo by zadat i název souboru jako proměnná, ale je to daleko pracnější každý den přepisovat přesný název. :)

hodnocení

Jelikož těch souborů je každý den kolem padesáti i víc, rád bych to co nejjednodušeji.

 

lobo*
hodnocení

0x

Přikládám slíbený soubor, archiv obsahuje zdrojový soubor (výpis), cílový soubor (vzor) a soubor, který obsahuje makro (spouštěcí soubor). Cesta ke zdrojovému souboru je v kódu zadaná napevno (před prvním spuštěním je třeba tuto cestu nastavit podle svého aktuálního umístění), cílový soubor se vybere v dialogu pro výběr souboru (nazáleží na jméně souboru). Přednastavená složka je plocha uživatele [environ(userprofile), pro složku temp je to environ(temp)]. Makro nevkládá vzorce, ale rovnou hodnoty.

Jediný problém bude s volbou listu v cílovém souboru, zatím je to nastaveno tak, že se pracuje s prvním listem v pořadí. Bylo taky nutné upravit (rozdělit) buňky na řádku 38 a 39 aby makro našlo poslední obsazený řádek sloupce B (hledání probíhá odspodu, pokud by bylo potřeba šlo by nastavit hledání od těchto řádků).

leteckaposta.cz/...

 

 


 

 

 

Přihlásit se k odběru odpovědí z této otázky:

Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz.

Používáním poradny vyjadřujete souhlas s personifikovanou reklamou, která pomáhá financovat tento server, děkujeme.

Copyright © 2004-2025 Poradna Poradte.cz. Všechna práva vyhrazena. Prohlášení o ochraně osobních údajů. | [tmavý motiv]