eLCHa napsal/a:
Asi by bylo vhodné vložit zde představu, jak má vypadat výstup - nemusí být ze všech 40k řádků
Jinak bych to viděl překvapivě na kontingenční tabulku(y)
nechápu, proč se nenahrála příloha...?
Zdravím
v tabulce je přes 40000 řádků.
Potřeboval bych na další list vytvořit tabulku/y kde budou vybrané nenulové hodnoty ze sloupců stat, rok, browser, os a u ních četnost.
Forma tabulky není pevně daná, ale chtěl bych nějaký univerzálnější postup, který se dá použit na x sloupců a y řádků zdrojové tabulky.
Dík
Díky všem za náměty a řešení.
Nakonec jsem to upravil takto:
Sub test()
Dim oWB As Workbook
Dim aWB as String
aWB = ThisWorkbook.Name
Set oWB = app.Workbooks.Open("C:\Data\test\zkratky.xls")
Workbooks(aWB).Activate
For x = ActiveCell.CurrentRegion.Rows(1).Row + 1 To ActiveCell.CurrentRegion.Rows(ActiveCell.CurrentRegion.Rows.Count).Row
For y = 2 To oWB.Sheets(1).Cells(1, 1).CurrentRegion.Rows.Count
If LCase(oWB.Sheets(1).Cells(y, 1)) = LCase(Cells(x, ActiveCell.Column)) Then
ActiveSheet.Cells(x, ActiveCell.Column) = oWB.Sheets(1).Cells(y, 2)
End If
Next
Next
oWB.Close
Set oWB = Nothing
End Sub
Přepisuje zkratkou ten sloupec, na kterém je kurzor. Je to univerzálnější a funguje
Bohužel nemám možnost (práva) instalovat doplňky a řádek
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;...." hází chybu
3706 - Zprostředkovatel nebyl nalezen.
Pokud nejde "zneviditelnit" jedna tabulka nedalo by se to pořešit příkazem na "zviditelnění" té druhé profes_org.xls ?
Nějak načíst název otevřeného dokumentu (bude mít různé názvy) do proměnné a pak ji použít?
řádek app.Visible = False
způsobí chybu 424-Object required
Pokud oremuju tento řádek, krokuju makro, ručně "zminimalizuji" okno se zkratkami a pak dál pustím makro - udělá co má :-)
Upravil jsem
ActiveSheet.Cells(x, 1) = oWB.Sheets(1).Cells(y, 2)
na
ActiveSheet.Cells(x, ActiveCell.Column) = oWB.Sheets(1).Cells(y, 2)
Teď jen nahradit tu "ruční část"
dnes končím, podívam se zítra. zatím děkuji.
Díky za rozpitvání makra - pochopeno
Používám Excel 2003.
nieje vidiet ze sa otvara
jak říkám, je vidět a stává se aktivní
probíhá to stejně při krokování makra i při přímem spuštění...
Ještě jednou požádám
Když už to budete upravovat, požádám rovnou o upravu aby se daný náze rovnou přepsal zkratkou (pokud nebude nalezena zkratka-neprovede se nic).
příkazem
Set oWB = Application.Workbooks.Open("xxx\zkratky.xls") se otevře soubor zkratky.xls a stane se aktivní
další příkazy
For x = ActiveCell.CurrentRegion......
se provádějí v tomto souboru (čili se neprovede nic) a nikoliv v souboru profes_org.xls.
Jde otevřít soubor "na pozadí" (aby se vůbec uživateli nezobrazoval)?
Když už to budete upravovat, požádám rovnou o upravu aby se daný náze rovnou přepsal zkratkou (pokud nebude nalezena zkratka-neprovede se nic).
to eLCHa
moje chyba - nenapsal jsem, že to potřebuji pro Excel 2003 :-(
to Palooo
Sice to funguje, ale netuším jak :-(
můžete to oREMovat?
Základní problém ale je že zkratky.xls budou někde na sítí (viz původni=Cesta k souborům aby byla v makru editovatelná (proměnná) a bude to JEDINY soubor, kdežto souborů profes_org.xls bude několik a z
nich se to makro bude spouštět
V reálu se původní text NAHRADÍ zkratkou (nebude se psát do jiného sloupce). V tomto příkladu jsem se chtěl dostat ke způsobu jakým by se to dalo řešit, když se pracuje se dvěmi (a vice) soubory umistěnými různě na disku/síti.
to Palooo
Asi jsem to nepochopil:
Proč je makro v souboru zkratky.xls? (potřebuju provádět úpravy v profes_org.xls)
Viz púvodní zadání.
eLCHa
Proč list ze souboru zkratky nevložíte do profes_org (třeba jako skrytý) - takto si to zbytečně komplikujete
...protože bude na siťovém disku a bude se průběžně aktualizovat
Opravdu se mi jedná o přesný souhlas, jediná změna jsou velká-malá písmena a snad by byly akceptovatelné počáteční a koncové mezery. Pokud bude v názvu ještě další text - tak to prostě není to co hledám.
asi jsem nepochopil jak to myslíte.
Píšu "Pokud bude nalezený text přesně souhlasit (neberou se v potaz malá/VELKÁ písmena).." tzn. jedině v čem se to může lišit je "Česká..." nebo "česká..."
Pokud zkratku nenajde -> "nenalezeno" (aby bylo jasné, že hledání proběhlo, ale nic se nenašlo)
Zdravím
potřeboval bych vyřešit univerzální problém s vyhledáním textu v jednom souboru a doplnění do druhého.
Jako přiklad jsem si z netu stáhl tabulku z nějakými názvy instituci (berte to tedy jako příklad-nikoliv jako pravdivou informaci).
Jde mi o to - v souboru profes_org.xls prohledat sloupec, na kterem bude kurzor (v tomto případě A), a porovnat nalezený text se sloupcem A souboru zkratky.xls. Pokud bude nalezený text přesně souhlasit (neberou se v potaz malá/VELKÁ písmena) pak se do sloupce D doplní zkratka ze sloupce B (zkratky.xls).
Cesta k souborům aby byla v makru editovatelná (proměnná).
Díky
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.