< návrat zpět
MS Excel
Téma: Srovnání sloupců dle vzoru
Zaslal/a poldacr 13.7.2016 10:23
Prosím o pomoc. Do Excelu natahuji dbf soubor, který slouží jako podklad pro načítání dat. Bohužel v dbf souboru se po aktualizacích zdroj. programu mění pořadí sloupců. Potřeboval bych pomocí makra na listu "mzdyu" překontrolovat pořadí označení sloupců (cca 170), případně je přesunout (s daty) tak, aby odpovídaly pořadí z listu "vzor" s tím, aby nové sloupce, které nejsou ve vzoru, se zařadily jako poslední. Pokud by nějaký sloupec chyběl, potřebuji hlášku, jaký název chybí.
Děkuji za pomoc.
Příloha: 32036_podklad_sloupce.zip (9kB, staženo 21x)
eLCHa(13.7.2016 10:33)#032037 Jakým způsobem importujete? Pokud pomocí sql, tak si pořadí sloupců definujte v dotazu.
citovat
poldacr(13.7.2016 10:44)#032038 Přes SQL to není. Je to v Excelu při otevírání vyberu soubor dbf.
citovat
Pavlus(15.7.2016 11:56)#032047 Jedno z možných řešení:
1. Pro ověření, zda na listu "mzdyu" je daný sloupec ze vzoru, využít funkci VVYHLEDAT. Pokud není, tak vyznačit přes podmíněné formátování.
2. Na listu vzor si očíslovat pořadí vzorových sloupců. Toto pořadí si následně dohledat pro jednotlivé položky na listu "mzdyu", opět VVYHLEDAT.
3. Seřadit list "mzdyu" zleva doprava (dle sloupců). Např. přes tlačítko makra, příp. vlastní řazení na kartě Domů.
P.
Ukázka v příloze:citovat
MePExG(15.7.2016 21:16)#032053 Neviem čo myslel eLCHa (pod SQL), ale pomocou PowerQuery (pre 2010 doplnok a v 2016 súčasť) stačí do jedného súboru nadefinovať požadovanú štruktúru a z dbf (zatiaľ Data.xlsx) spraviť dotaz bez cieľa a do načítanej definovanej štruktúry appendnúť údaje z dbf (z tichého dotazu). Tým sa stĺpce sami zoradia. Popis a príklad v prílohe.
Příloha: 32053_pq.zip (45kB, staženo 22x) citovat
MePExG(15.7.2016 21:33)#032054 Pardon, zabudol som použiť substituovaný disk Q:. Príloha je upravená. Po úprave (zmenení vlastnéha adresára, kde sú súbory umiestnené) a spustení diskQ.bat stačí otvoriť Vysledok, byť v tabuľke a aktualizovať údaje Alt+F5. Ak chcete použiť vlastné údaje, stačí do súboru Data ich načítať na prvý list (resp. vložiť ako hodnoty z otvarenia dbf) a uložiť
.
Příloha: 32054_pq.zip (45kB, staženo 22x) citovat
eLCHa(15.7.2016 23:06)#032055 eLCHa myslel obyčejné MSQuery, které dBase podporuje. S vypsáním sloupců v pořadí, jaké potřebuji. Buď s VBA nebo bez (pokud se počet sloupců může měnit, tak asi s)
Dim sSql As String
sSql = "SELECT t.CUST_NO, t.NAME, t.STREET, t.CITY, t.STATE_PROV, t.ZIP_PST_CD, t.COUNTRY, t.PHONE, t.FRST_CNTCT FROM `D:\Downloads`\Sample.dbf t"
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:="ODBC;DSN=dBASE Files;PageTimeout=0;", Destination:=Cells(1)).QueryTable
.CommandText = sSql
.Refresh BackgroundQuery:=False
End Withcitovat