MS Excel: Využití Makra - propojení dvou souborů Vyřešeno

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

Lueticky_kretek
Level 1
Level 1
Příspěvky: 56
Registrován: červen 09
Pohlaví: Muž
Stav:
Offline

MS Excel: Využití Makra - propojení dvou souborů  Vyřešeno

Příspěvekod Lueticky_kretek » 18 čer 2009 11:45

Hezký den přeji.

Dostal jsem v práci pro mne dost neřešitelný problém. Za jakkoukoliv pomoc předem děkuji.
Budu se to snažit popsat co nejpřesněji.

Při vytištění faktury za různé služby se vytvoří soubor F_číslofaktury.xls ( F_28480.xls)
Za každou fakturu nový soubor resp. F_číslofaktury+1.xls (F_28481.xls,atd.)

Potřebuji z této faktury přvzít určité údaje, zvýrazněné žlutě v přiloženém souboru F_28480.xls a převést do konkrétních buněk v souboru vzor.xls, který též přikládám.

Problém I.

Požadované údaje jsou uložené jako TXT a ne do jednotlivých buněk (údaje Základ DPH,DPH,Cena Celkem).
Zde by asi šlo použít DATA/Text do sloupců. Nevím,ale jak to přenést poté automaticky do výsledného souboru (vzor.xls),jelikož řádek na kterém budou důležité hodnoty se můžou měnit ( jednou základ DPH na řádku 29, podruhé na 30,atd),ale vždy bude částka uvedena ve stejném řádku jako Cena celkem .

Problém II.

Nevím, jak v Makru nastavit,aby prošel např. všechny soubory v daném adresáři,kde budou uvedeny všechny F_číslofaktury.xls a z nich nakopírovat příslušné položky.

Opravdu budu vděčný za jakkoukoliv pomoc s tímto problémem.
Přílohy
vzor.xls
(35.5 KiB) Staženo 220 x
F_28480.xls
(31 KiB) Staženo 185 x

Reklama
navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: MS Excell : Využití Makra - propojení dvou souborů

Příspěvekod navstevnik » 18 čer 2009 15:33

Jakmile si najdu trochu casu, navrhnu reseni.
V souboru F_28480.xls je i cislo faktury, je zapotrebi je prenest do souboru vzor.xls a pripadne kam vlozit?

Lueticky_kretek
Level 1
Level 1
Příspěvky: 56
Registrován: červen 09
Pohlaví: Muž
Stav:
Offline

Re: MS Excell : Využití Makra - propojení dvou souborů

Příspěvekod Lueticky_kretek » 18 čer 2009 15:57

Díky moc.
Ano, v souboru F_28480.xls je i číslo faktury (Sloučené buňky I,J 3,4,5,6 číslo dokladu), které bych potřeboval přenést do vzor.xls sloupec B s tím,že by se před to přidalo písmeno f.

Kdyby to šlo,tak použít makro v souboru vzor.xls, který by doplňoval řádky z adresáře XX,kde by byly vždy uloženy příslušné soubory s fakturama.

Opravdu budu rád za jakkokoliv pomoc.

jardal
nováček
Příspěvky: 25
Registrován: leden 09
Pohlaví: Muž
Stav:
Offline

Re: MS Excell : Využití Makra - propojení dvou souborů

Příspěvekod jardal » 18 čer 2009 16:54

Tak jsem zkusil z faktury dostat "Základ DPH". Asi by to uměl někdo líp, ale u mě je to funkční. Podobně jde udělat zbytek...
Třeba to pomůže.

Kód: Vybrat vše

Sub Makro1()
hledame = "Základ DPH (pro sazbu" 'co hledame
  Set hled_ = Cells.Find(hledame, LookIn:=xlValues) 'vyhledávání
    If hled_ Is Nothing Then
        MsgBox "Nemohu nalézt Základ DPH" 'nenalezeno
       
        Else
 
        zaklad_dph = Cells(hled_.Row, hled_.Column).Text 'nalezen celý text
        zacatek = InStr(1, zaklad_dph, ")") 'Najdeme pozici )
        konec = InStr(1, zaklad_dph, "Kč")  'Najdeme pozici Kč
        zaklad_dph = Trim(Mid(zaklad_dph, zacatek + 1, konec - zacatek - 1)) 'vystřihneme mezi dvěma pozicema co potřebujeme a vymažem přebývající mezery,
        MsgBox zaklad_dph 'zobrazíme výsledek
    End If

   
End Sub

Lueticky_kretek
Level 1
Level 1
Příspěvky: 56
Registrován: červen 09
Pohlaví: Muž
Stav:
Offline

Re: MS Excell : Využití Makra - propojení dvou souborů

Příspěvekod Lueticky_kretek » 18 čer 2009 17:18

Ahoj, díky.
Děkuji,toto vypadá,že vezme údaj za Základ DPH,ale musím nějak pořešit jak ho dostat do vzor.xls.

Potřebuji hodnotu/částku za údajem Základ DPH,kterou musím přesunout do druhého vzor.xls.

Bohužel částka není uvedena v konkrétní buňce (textový charakter) a pozice/číslo řádku se může měnit, tak potřebuji nějak nastavit automaticky,aby najdeš-li na řádku slovo základ DPH, přesun částku za ním do vzor.xls do sloupce I3 pro první fakturu, I4 pro druhou atd.

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: MS Excell : Využití Makra - propojení dvou souborů

Příspěvekod navstevnik » 18 čer 2009 18:02

V priloze je soubor Transfer.xls, ktery prenese data ze souboru faktura.xls v prislusnem katalogu (predpoklad je, ze obsahuje pouze soubory faktura) do souboru vzor.xls. Je to pracovni verze, podle potreby bude upravena.
Vloz na list Start prislusne cesty a nazvy, spustit tlacitkem.
PS.:pokud bude opakovane pouzivano, bude potreba zabranit duplicitnimu nacteni souboru faktura. Jak resit?
Přílohy
Transfer.xls
(43.5 KiB) Staženo 152 x

Lueticky_kretek
Level 1
Level 1
Příspěvky: 56
Registrován: červen 09
Pohlaví: Muž
Stav:
Offline

Re: MS Excell : Využití Makra - propojení dvou souborů

Příspěvekod Lueticky_kretek » 18 čer 2009 21:20

Díky,chlape.

Menší problém:-)

Pokud odmažu v souboru vzor.xls řádky 3,4,5 tzn. zůstanou řádky 1.a 2., aby prostě byl soubor prázdný pouze s popisem sloupců, vyskočí mi chyba Run-time error 1004.

Při debug Set TCll = .Range("e" & LstR + 2)

Větší test s více soubory, odzkouším až v práci.

Duplicitu bych neřešil, prostě to bude chyba obsluhy.
Soubory s fakturou nebudou již možné jakkoliv opravovat, tudíž provedou jednou ( nastavene-li chyba, odmaže si soubor vzor.xls, jako já a udělají to znova).

Ale i tak opravdu moc díky!

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: MS Excel: Využití Makra - propojení dvou souborů

Příspěvekod navstevnik » 19 čer 2009 07:41

V priloze je upravena verze.
Polozka Jmeno Prijmeni je rozdelena na dve casti podle prvni mezery zleva.
Přílohy
Transfer.xls
(44.5 KiB) Staženo 92 x

Lueticky_kretek
Level 1
Level 1
Příspěvky: 56
Registrován: červen 09
Pohlaví: Muž
Stav:
Offline

Re: MS Excel: Využití Makra - propojení dvou souborů

Příspěvekod Lueticky_kretek » 19 čer 2009 09:29

Vypadá ,že to všechno funguje jak má.
Jediná drobnost, nejde nastavit řádkování do vzor.xls do sloupce A. 1.,2.,3. atd?

Pak už jen blbost, v souboru vzor.xls je sloupec V (jméno/firma) přiděleno vždy jméno, nelze nastavit, pokud ve F_28480.xls nalezne s.r.o., a.s. či spol. s r.o.,aby to nerozděloval jako jméno a příjmení a rovnou to hodil do sloupce V?
Tedka to je tak,že Firma je Firma, Příjmení s.r.o.?

A snad poslední dotaz, budu-li si chtít udělat změnu, že budu chtít např. přidat další údaj, myslíš,že bys mi naznačil co bych měl pro to udělat?!

Díky moc

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: MS Excel: Využití Makra - propojení dvou souborů

Příspěvekod navstevnik » 19 čer 2009 10:13

K pripominkam:
"nejde nastavit řádkování do vzor.xls do sloupce A. 1.,2.,3. atd" - co je mineno radkovanim?
"jméno/firma" - jak identifikovat co je firma? to musis stanovit ty, bude to vzdy jen "s.r.o.", "a.s." či "spol. s r.o." a v teto podobe?
"přidat další údaj" - pro vlozeni do ciloveho listu je nutno stanovit ofset vuci sloupci E:E, dalsi odvisi od umisteni v souboru faktura.
Pokud to je pojmenovana oblast, pak takto (priklad - cilovy sloupec ma ofset 1 a je hodnota je nacitana z pojm. oblasti "splatnost" - jinak je nutno zadat adresu zdrojove bunky, neni nutna uprava, napr. rozdeleni, ...):

Kód: Vybrat vše

' presun dat, pojmenovane oblasti
    With SWsht
.....
TCll.Offset(0, 1).Value = .Range("splatnost").Value
....
    End With


Jine upravy je nutno udelat podle konretniho stavu, napr. zde dohledani a uprava polozek DPH, Celkem cena, Zaklad dane:

Kód: Vybrat vše

...
 ' prohledat blok ve sloupci C:C
      Set SBlok = .Range("c15", [c1000].End(xlUp))
      For Each SCll In SBlok.Cells
        If InStr(SCll.Value, "Cena celkem") > 0 Then
          TmpStr = Replace(SCll.Value, " Kè ", "")
          i = InStrRev(TmpStr, " ")
          TCll.Offset(0, 3).NumberFormat = "#0.00"
          TCll.Offset(0, 3).Value = CSng(Right(TmpStr, Len(TmpStr) - i))
        End If
        If InStr(SCll.Value, "Základ DPH") > 0 Then
          TmpStr = Replace(SCll.Value, " Kè ", "")
          i = InStrRev(TmpStr, " ")
          TCll.Offset(0, 4).NumberFormat = "#0.00"
          TCll.Offset(0, 4).Value = CSng(Right(TmpStr, Len(TmpStr) - i))
        End If
        If InStr(SCll.Value, "       DPH") > 0 Then
          TmpStr = Replace(SCll.Value, " Kè ", "")
          i = InStrRev(TmpStr, " ")
          TCll.Offset(0, 5).NumberFormat = "#0.00"
          TCll.Offset(0, 5).Value = CSng(Right(TmpStr, Len(TmpStr) - i))
        End If
      Next SCll
...

no a porozumet kodu, k dispozici je nekolik orientacnich poznamek v procedure VBA.

Lueticky_kretek
Level 1
Level 1
Příspěvky: 56
Registrován: červen 09
Pohlaví: Muž
Stav:
Offline

Re: MS Excel: Využití Makra - propojení dvou souborů

Příspěvekod Lueticky_kretek » 19 čer 2009 10:30

Díky.

I. řádkováním jsem myslel,že mi ke každému novému řádku přibude do sloupce A číslice 1.
Na druhý řádek, do sloupce A 2.
Na třetí řádek do sloupce A 3. , ...

II. Firmu bych právě detekoval podle přesných znaků tj. v řádku 10 bude-li uvedeno s.r.o, a.s., spol. s r.o. (mnou definovatelné údaje), tak to nerozděluj na jméno a příjmení,ale pouze do dej do sloupce V.
Nebude-li tam toto uvedeno, rozděl to do sloupců V a W, jako doposud.

Stejně obdivuji,že mi pomáháš:-)

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: MS Excel: Využití Makra - propojení dvou souborů

Příspěvekod navstevnik » 19 čer 2009 10:49

V priloze je upraveny soubor.
S temi zkratkami firem asi budou potize, jednou uvadis "s.r.o." a v odpovedi k pripominkam uvadis "s.r.o" :mad:
Otestuj na vetsim souboru se vsemi variantami jmen a nazvu firem i variantami hodnot ostatnich polozek.
Přílohy
Transfer.xls
(45.5 KiB) Staženo 117 x


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • EXCEL -jak otevřít 2 excel sobory abych je viděla současne a samostatně
    od Ketty02 » 30 srp 2024 21:19 » v Vše ostatní (sw)
    2
    4756
    od Riviera kid Zobrazit poslední příspěvek
    02 zář 2024 16:21
  • Využití 2. NTB jako externí monitor - KABELEM
    od DenyKr » 14 zář 2024 19:40 » v Vše ostatní (hw)
    6
    3566
    od DenyKr Zobrazit poslední příspěvek
    29 zář 2024 13:25
  • Přechod z Excel 21 na Excel 24
    od Snekment » 29 led 2025 13:46 » v Kancelářské balíky
    2
    12167
    od Snekment Zobrazit poslední příspěvek
    29 led 2025 15:05
  • Jaký z těchto dvou notebooků vybrat?
    od Speed_dead » 10 říj 2024 21:49 » v Rady s výběrem hw a sestavením PC
    11
    1966
    od Speed_dead Zobrazit poslední příspěvek
    12 říj 2024 21:07
  • Propojení soundbaru s TV
    od Zakk » 11 led 2025 23:05 » v Vše ostatní (hw)
    1
    1909
    od Melvidor Zobrazit poslední příspěvek
    12 led 2025 12:01

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 7 hostů