Zavrieť

Porady

Export dát z Webového reportu do Excelu

Dobrý deň
Potrebujem importovať dáta z Webového reportu do Excelu a zatiaľ to neviem robiť inou formou ako CTRL+C a CTRL+V..
Naimportované dáta sa však netvária ako čísla a neviem s nimi ďalej pracovať.
Skúšal som použiť Funkciu TRIM a VALUE ale nepomohlo.
Vie niekto poradiť?
Ďakujem
Dúfam že neduplikujem tému..
Naposledy upravil Dav : 26.03.11 at 06:54 Dôvod: Pridanie prílohy
Usporiadat
Pidgey Pidgey

Pidgey je offline (nepripojený) Pidgey

Štastný človek :)
ja som dal nahradit vsetky medzeri nicim, a dal previest na cislo - nepomohlo - lebo za tymi cislami je este nieco ako tabulator, teda nie je to medzera a nebolo to vidiet. skopiroval som teda za jednym cislom to prazdne, dal Ctrl C a dal nahradit opat za nic a uz mi to potom bralo hodnoty ako cisla.ale prides aj o medzeri v popisoch...
1 0
Menej reklamy? Zaregistrujte sa! - Žiadne vyskakovacie reklamy!
sances sances

sances je offline (nepripojený) sances

Ďakujem,pomohlo, medzery v popiskoch ma veľmi netrápia, dáta ďalej kopírujem a ščítavam.Rozmýšľam teraz ako to zahrnúť do makra
V jednoduchosti je sila.. Myslel som že TRIM nefunguje lebo je určený pre text ale on asi nefungoval lebo nešlo o medzery.
0 0
Pidgey Pidgey

Pidgey je offline (nepripojený) Pidgey

Štastný človek :)
Sub prevod_na_cislo()
'
' prevod_na_cislo Makro
'
' Klávesová zkratka: Ctrl+q
'
Cells.Select
Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Cells.Select
Selection.Replace What:="*", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub


ja s makrami moc nerobim (cca vobec), jedine co som sa kedysi nauzil je zaznam makra, cize som spustil zaznam noveho makra, a potom som postupne urobil vsetky kroky - vybral vsetko, nahradil medzeri, vybral vsetko a dal nahradit ten znak (mal som ho skopirovany v pamati), a ulozil, a uz to islo . neviem ci je to uplne koser,ale funguje to

doplnam, teraz som sa pozeral co sa mi sem skopirovalo, tak to nie je to co vidim v mojom makre, v druhom nahradzani nema byt "*" ale ten prazdny znak. ak by to neslo, mozem to sem skopirovat do txt a prilozit...
1 0
PaloPa PaloPa

PaloPa je offline (nepripojený) PaloPa

Iba krátky tip. Pri importe dát z externých zdrojov (napr. txt, csv ...) sa dá hneď pri importe zadefinovať,
ako má Excel narábať s položkami, ktoré sú čísla.

Krátky opis, ako to funguje pre Excel 2003 (analogicky i pre 2007 a 2010):
1) klasický postup pre import: Údaje / Import externých údajov...
2) "vyklikať" podrobnosti importu, napr.:
- oddeľovač bodkočiarka,
- označenie stĺpcov, ktoré sú textové, ktoré dátumové ...
- TIP 1: označiť viac stĺpcov rovnakého typu (napr.text) - klik na Prvý – stlačiť a podržať SHIFT – klik na Posledný
- TIP 2: !!! čísla nechať typu "General" a ak sú v zdrojovom súbore des. bodky ale v Exceli fungujú des. čiarky,
nastaviť Decimal Separator – bodku (tlačidlo Advanced) - (to je riešenie pracného prehadzovania na čísla po importe)

Ak sa to spojí i so zaznamenaním makra, dá sa to pekne zautomatizovať.

Podrobný postup tu:
Excel - automatizácia importu csv súborov
Excel, makro - import údajov

Palo

Ešte jedna rada. Ak sú však k dispozícii už len naimportované údaje, potom klasicky: označiť oblasť s údajmi, Hľadať + Nahradiť (CTRL+H)
POZOR: Niektoré systémy (napr. Navision) generujú čísla, kde znak medzi stovkami a tisíckami vyzerá ako medzera, ale je to iný znak (cez klávesnicu ALT+0160).
To je presne prípad pripojeného vzorového XLS.

Vzorové makierko pre konverziu na číslo i s pridaním formátu čísla (v tomto prípade €)
Code:
    Sub EuroFormat()
    Dim x As String, xTxt As String, xRng As Range, c As Range

    Set xRng = Selection

    For Each c In xRng
        If c.HasFormula = False Then
            x = Trim(CStr(c.Value))
            If InStr(1, x, Chr(160)) > 0 Then x = Replace(x, Chr(160), "", 1, -1, 1) 'ina medzera (ALT+0160)
            If InStr(1, x, " ") > 0 Then x = Replace(x, " ", "", 1, -1, 1)
            'If InStr(1, x, ",") > 0 Then x = Replace(x, ",", "", 1, -1, 1) 'ak je oddelovač tisícov čiarka
           
            If InStr(1, x, ".") > 0 Then x = Replace(x, ".", ",", 1, -1, 1)
            If InStr(1, x, "€") > 0 Then x = Replace(x, "€", "", 1, -1, 1)
           
            If IsNumeric(x) Then c.Value = CDbl(x)
        End If
    Next c

    xRng.NumberFormat = "#,##0.00 [$€-1];[Red]-#,##0.00 [$€-1]"
    Set xRng = Nothing

    End Sub
Naposledy upravil PaloPa : 18.03.11 at 12:34 Dôvod: doplnenie
Import_Number_separator.GIF  
3 0
sances sances

sances je offline (nepripojený) sances

UU Ďakujem páni
Idem na to vyskúšať to
Ide o Import Webowej tabuľky - nie je v .csv ani .txt.
Pridali tam dokonca ikonku "exportu" do Excelu ale stále to nie sú čísla bez medzier a tých neznámych znakov.
Takže to musím vyriešiť vašou funkciou či makierkom a samozrejme - čím viac to bude automatizované a blbovzdorné, tým lepšie.
Dám vedieť ako som dopadol..
Ďakujem veľmi všetkým 100x
0 0
sances sances

sances je offline (nepripojený) sances

Zdar páni.
Tak neviem kde ste sa to všetko naučili ale Pidgeyho makierko funguje skvelo.
Najprv mi to vymazalo všetky údaje z tabuľky.
Potom som nahradil tú hviezdičku tým neznámym znakom ktorý je za údajom ktrorý sa tvári ako číslo ale nie je to číslo a hneď mi to prečistilo celú tabuľku.
Super.
Import údajov som už používal tak ako popisuje PaloPa len tu som ho nevedel použiť lebo šlo vlasne o import z "Excelu do Excelu" ale veľmi cenné sú jeho poznatky do budúcna a ukladám si to.
Makierko spojím ešte z inými mojimi potrebami dúfam že to bude čo najviac automatizované.
Škoda že neviem Excelu povedať nájdi na www oblast buniek a importuj ju sem a sem a prečisti ju - to by už urobilo makierko .. a tak ..
Zatial študujem literatúru a možno raz budem vedieť aj to
Čo ma na tom ale baví je to, že čo ja tu riešim ako problém, vy vyriešite v rámci oddychu cez obedňajšiu pauzu klobúk dole.
Ďakujem ešte raz všetkým
Príjemný weekend
0 0
mepex mepex

mepex je offline (nepripojený) mepex

Pokiaľ viem Excel umožňuje aktualizáciu údajov (pri otvorení dokumentu) aj z internetu (pokiaľ to je tabuľka). Ja tak mám spravenú aktualizáciu 4 fondov zo stránky VUB a funguje mi to bez problémov. V prípade záujmu sa dá naprogramovať aj ukladanie (zber) údajov včetne konverzie.
1 0
sances sances

sances je offline (nepripojený) sances

Áno, ja som to skúšal a ešte som to nevzdal
Problém je v tom že údaje ktoré potrebujem natiahnuť sú "skryté" za takým "webovým" kalendárikom, kde si treba navoliť za ktorý deň má stránka zobraziť report. Taktiež si človek cez ikonku môže zvoliť prevod do Excelu - ktorý ako som riešil vyššie nie je na 100% spolahlivý.Na miesto "kalendárika" si ale asi budem všímať aký odkaz to vygeneruje a to sa budem snažiť nejako vnútiť Excelu aby sa mohol dostať na ten správny report v závislosti na dátume.
0 0
sances sances

sances je offline (nepripojený) sances

Noo tak nejake pokroky už som urobil, vložil som do "okienka" kde sa zadáva webový dopyt upravený odkaz ktorý vygeneruje ten "kalendárik" a takto sa dostanem k aktuálnemu reportu.
Málokedy sa však "natiahne" sám, treba mu pomôcť systémom - upraviť odkaz - nič neupravím len to odkliknem a načíta report..
Mám tam 5 listov - na každom liste mám odkaz na iný report asi preto sa to bije alebo neviem čo.. asi je to veľa údajov naraz..
Budem ďaľej skúšať.
0 0
PaloPa PaloPa

PaloPa je offline (nepripojený) PaloPa

sances Pozri príspevok
Noo tak nejake pokroky už som urobil, vložil som do "okienka" kde sa zadáva webový dopyt upravený odkaz ktorý vygeneruje ten "kalendárik" a takto sa dostanem k aktuálnemu reportu.
Málokedy sa však "natiahne" sám, treba mu pomôcť systémom - upraviť odkaz - nič neupravím len to odkliknem a načíta report..
Mám tam 5 listov - na každom liste mám odkaz na iný report asi preto sa to bije alebo neviem čo.. asi je to veľa údajov naraz..
Budem ďaľej skúšať.
Pripájam jednoduchý príklad aktualizácie kurzov z ECB, možno niekomu pomôže.

Cez "Importovať Externé údaje / Nový webový dotaz" som si prilinkoval údaje z webového XML zdroja (http://www.ecb.europa.eu/stats/eurof...f-hist-90d.xml)

Kliknutím pravým tlačidlom na ľubovoľné miesto naimportovaných údajov sa dajú pozrieť vlastnosti pripojenia (zatiaľ stačí pomenovanie pripojenia).
Názov sa potom dá použiť vo VBA kóde, pri volaní update, napr. takto:

Code:
Sub btn_UpdateKurz_Click()
    Application.GoTo Reference:=ActiveSheet.Range("B3")
    Selection.AutoFilter
    ActiveWorkbook.XmlMaps("ECB_kurzy_90d").DataBinding.Refresh
End Sub
Makro vtedy, ak by bolo treba zaktualizovať viac zdrojov naraz, inak stačí po stl. pravého tlačidla iba spustiť "Obnoviť údaje XML"

Palo
3 0
sances sances

sances je offline (nepripojený) sances

OO super, Ďakujem, zakomponujem, niečo také potrebujem,zajtra v práci vyskúšam.Urobím "tlačítko" - "aktualizuj report".. Dík Pomaly sa v mojej knihe prelúskavam aj k takýmto veciam, len mi sa mi zdá stále že mi to ide straašne pomaly..

Noo Tak musím na tom popracovať, aktualizuje sa mi len práve aktívny List pri otvorení zošitu.
Skúšam si upraviť to makierko, len neviem či idem správnym smerom..
aby sa aktualizovali všetky listy pri otvorení zošitu, alebo pri kliku na tlačítko "aktualizuj".

No asi sa podarilo..
Na tých daľších listoch som nemal zakliknuté vo vlastnostiach - obnovovať pri otvorení súboru
Ďakujem
Naposledy upravil sances : 27.03.11 at 10:12
0 0
sances sances

sances je offline (nepripojený) sances

Poraďáci, tak s Vašou pomocou (aj v téme porovnávací vzorec Excel) som to riešil, vzniklo toto: príloha...
Zošit sa mi pekne aktualizuje, makierko aj keď trošku neefektívne, ale funguje,
Stĺpčeky sa vyplňajú.
Jedná sa mi o to že reporty ktoré sa naťahujú na list 102 a 104 sa uzatvárajú každý deň najpojzdejšie k 08:00.
1.Vedeli by Ste mi to pomôcť rozšíriť tak, aby sa to spustilo, vyčkalo na aktualizáciu údajov, vyplnilo bunky a uložilo sa samo v určený čas?

2.Alebo: Vedeli by sme to rozšíriť tak aby to natiahlo aj report za iný dátum?
Webový odkaz sa mení v závislosti na dátume viď. druhá príloha..

Viem že nechcem málo

Učím sa.. som na str. 318 MS Office Excel 2007 programovaní ve VBA a pomaličky mi dávajú niektoré veci zmysel..
Ale na toto som ešte nedorástol

Ďakujem veľmi pekne
0 0
sances sances

sances je offline (nepripojený) sances

Zdravím
Vedeli by ste mi poradiť ako napísať vzorček alebo funkciu ktorá by mi zlúčila obsah dvoch buniek do jednej podľa priloženého súboru?
V F10 a G10 sú čísla napr.F10 1 vagón a G10 28 ton. 1 vagón = 28 ton. Do H10 by som potreboval zapísať: 1medzera/medzera28. V H10 to už nemusí byť ako číslo, daľej sa už s týmto údajom ako číslom nepracuje..Ak je to ťažké tak tam nechám len tony Skúsil som to cez formát - vlastný - ale to mi nefunguje. Ďakujem
0 0
jojom jojom

jojom je offline (nepripojený) jojom

sances Pozri príspevok
Zdravím
Vedeli by ste mi poradiť ako napísať vzorček alebo funkciu ktorá by mi zlúčila obsah dvoch buniek do jednej podľa priloženého súboru?
V F10 a G10 sú čísla napr.F10 1 vagón a G10 28 ton. 1 vagón = 28 ton. Do H10 by som potreboval zapísať: 1medzera/medzera28. V H10 to už nemusí byť ako číslo, daľej sa už s týmto údajom ako číslom nepracuje..Ak je to ťažké tak tam nechám len tony Skúsil som to cez formát - vlastný - ale to mi nefunguje. Ďakujem
VLEVO(F10;(NAJÍT(" ";F10;1))-1)&" / "&VLEVO(G10;(NAJÍT(" ";G10;1))-1)
1 0
marjankaj marjankaj

marjankaj je offline (nepripojený) marjankaj

I am a man
Alebo aj takto.
'=CONCATENATE(F10;" / ";G10)
2 0
sances sances

sances je offline (nepripojený) sances

Ďakujem veľmi pekne chlapi, hneď to letím domov vyskúšať. Ako som už raz písal,robíte tu nemožné na počkanie a zázraky do troch dní...
0 0
jojom jojom

jojom je offline (nepripojený) jojom

marjankaj Pozri príspevok
Alebo aj takto.
'=CONCATENATE(F10;" / ";G10)
Tento vzorec sa dá nahradiť aj jednoduchším: ´=F10&" / " &G10 .
Ale neodstráni text ktorý potrebuje v tomto prípade sances odstrániť.
0 0
marjankaj marjankaj

marjankaj je offline (nepripojený) marjankaj

I am a man
jojom Pozri príspevok
Tento vzorec sa dá nahradiť aj jednoduchším: ´=F10&" / " &G10 .
Ale neodstráni text ktorý potrebuje v tomto prípade sances odstrániť.

V prílohe žiadny text nebol. A myslel som že ak by tam bol, tak cez vlastný formát.
Nevidím logiku, aby si to niekto komplikoval vypisovaním textu do bunky s číslom.
Ale ak áno, tak by to bolo po tvojom.
0 0
sances sances

sances je offline (nepripojený) sances

Nie nie, text tam nie je žiaden.
Zdá sa mi že budú fungovať všetky spôsoby čo ste napísali
Až sa mi hlava motá..
Skúšam to vpísať do syntaxe ktorú mám v makierku aby to mohlo chodiť..
Zatiaľ sa mu veľmi nechce
Ide zas o presun dát ako stále čo som tu zatiaľ riešil..
Sheets("SK ČB").Cells(135, Den + 12).Value = Sheets("UHLIE KOPY").Range("F26&" / " &G26).Value
Sheets("SK ČB").Cells(135, Den + 12).Value = Sheets("UHLIE KOPY").Range("F35&" / " &G35).Value
Stále sa ale VB nepáči ako to tam dávam..ešte poskúšam troška..
0 0
marjankaj marjankaj

marjankaj je offline (nepripojený) marjankaj

I am a man
sances Pozri príspevok
Nie nie, text tam nie je žiaden.
Zdá sa mi že budú fungovať všetky spôsoby čo ste napísali
Až sa mi hlava motá..
Skúšam to vpísať do syntaxe ktorú mám v makierku aby to mohlo chodiť..
Zatiaľ sa mu veľmi nechce
Ide zas o presun dát ako stále čo som tu zatiaľ riešil..
Sheets("SK ČB").Cells(135, Den + 12).Value = Sheets("UHLIE KOPY").Range("F26&" / " &G26).Value
Sheets("SK ČB").Cells(135, Den + 12).Value = Sheets("UHLIE KOPY").Range("F35&" / " &G35).Value
Stále sa ale VB nepáči ako to tam dávam..ešte poskúšam troška..
Môže byť
Range("A1")
Range("A1:C10")
Range("A:A")
Range("3:3")
Range("PomenovanáOblast")

Ale určite nie niečo takéto
Range("F35& " / " &G35)

Nanajvýš by to mohlo ísť takto
Range("F35" & " : " & "G35")
Naposledy upravil marjankaj : 16.05.11 at 17:05
2 0
Načítať ďalšie

Sleduj porady, ktoré by vás mohli zaujímať