Pomozte mi sloučit data z více sešitů. Přikládám přílohy.* Vyřešeno

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

Moderátor: Mods_senior

Dodov
nováček
Příspěvky: 6
Registrován: listopad 10
Pohlaví: Muž
Stav:
Offline

Pomozte mi sloučit data z více sešitů. Přikládám přílohy.*  Vyřešeno

Příspěvekod Dodov » 08 lis 2010 18:56

Dobrý den,

Potřeboval bych pomocí macra sloučit data ze sešitů "data","data1","data2",.... (pokaždé jiný název souboru)
do sešitu "data konec". Pouze konkrétní buňky! Přikládám přílohy se vzorovými daty.

Udaje v souborech "data" budou vždy na teto pozici.

Děkuji za pomoc
Přílohy
data2.xlsx
(10 KiB) Staženo 68 x
data1.xlsx
(10 KiB) Staženo 62 x
data.xlsx
(10 KiB) Staženo 61 x
data konec.xlsx
(10.07 KiB) Staženo 65 x
Naposledy upravil(a) mike007 dne 09 lis 2010 04:50, celkem upraveno 3 x.
Důvod: Zlidštění nadpisu „Report s více sešitů“. Opraven překlep v nadpisu.

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

Re: Report s více sešitů

Příspěvekod navstevnik » 09 lis 2010 00:24

Nize uvedenou proceduru vloz v editoru VBA (Alt+F11) do standardniho modulu sesitu data konec.xlsm (cilovy soubor). Uprav v procedure disk a adresar zdrojovych souboru a nazvy listu zdrojovych souboru a ciloveho souboru, pripadne vychozi bunky na zdrojovem a cilovem listu. Spustit klavesou F5 v editoru VBA. Zdrojove sesity jsou postupne otevirany a prenesena data v rozsahu poskytnuteho dema, cilovy sesit je na zaver ulozen.

Kód: Vybrat vše

Option Explicit

Sub SloucitData()
  Dim MsgResponse As Byte
  Dim objFSO As Object, objDir As Object, aItem As Object
  Dim CntFFile As Integer, SPath As String, SFileType
  Dim Swbk As Workbook, SWsht As Worksheet, SCll As Range
  Dim SWshtName As String, SCllAddr As String
  Dim TWbk As Workbook, TWsht As Worksheet, TCllAddr As String
  Dim TCll As Range, TOffsR As Long, TWshtName As String

  '*********upravit dle realu**********
  SPath = "E:\Excel\dodov"  ' katalog zdrojovych sesitu
  SFileType = "xlsx"  ' rozsireni .xlsx
  ' nazev listu a vychozi bunka
  SWshtName = "list1"  ' zdrojovych sesitu
  SCllAddr = "c6"
  TWshtName = "list1"  ' ciloveho sesitu
  TCllAddr = "c8"
  '************************************

  ' v katalogu otevirat jednotlive soubory, prenest data
  ' definovat objekt FSO
  Set objFSO = CreateObject("scripting.filesystemobject")
  On Error Resume Next
  ' katalog
  Set objDir = objFSO.GetFolder(SPath)
  If Err.Number <> 0 Then
    MsgResponse = MsgBox("Katalog zdrojových souborù nebyl nalezen." & vbCr _
        & "Konec.", vbOKOnly + vbExclamation)
    GoTo Err3
  End If
  On Error GoTo 0
  ' pocet souboru
  CntFFile = objDir.Files.Count
  ' pokud CntFFile=0, zobrazi hlasku
  If CntFFile > 0 Then
    ' definovat cilovy sesit, list, vychozi bunku, offset
    Set TWbk = ThisWorkbook
    Set TWsht = TWbk.Worksheets(TWshtName)
    Set TCll = TWsht.Range(TCllAddr)
    TOffsR = 0
    ' ve smycce otevirat zdrojove sesity
    For Each aItem In objDir.Files
      If objFSO.GetExtensionName(aItem) = SFileType Then
        ' definovat zdrojovy sesit, list, vychozi bunku
        Set Swbk = GetObject(aItem)
        Set SWsht = Swbk.Worksheets(SWshtName)
        Set SCll = SWsht.Range(SCllAddr)
        ' prenest data
        TCll.Offset(TOffsR, 0).Value = SCll.Value
        TCll.Offset(TOffsR, 2).Value = SCll.Offset(1, 0).Value
        TCll.Offset(TOffsR, 4).Value = SCll.Offset(2, 0).Value
        Swbk.Close False  ' zavrit zdrojovy sesit
        Set SCll = Nothing
        Set SWsht = Nothing
        Set Swbk = Nothing
        TOffsR = TOffsR + 1
      End If
    Next aItem
    With Application
      .DisplayAlerts = False
      TWbk.Save  ' ulozit cilovy sesit
      .DisplayAlerts = True
    End With
  Else  ' nebyl nalezen zadny soubor
    MsgResponse = MsgBox("Katalog zdrojových souborù: '" & SPath & "' je prázdný!", _
        vbOKOnly + vbInformation)
  End If
  Set TCll = Nothing
  Set TWsht = Nothing
  Set TWbk = Nothing
Err3:
  Set aItem = Nothing
  Set objDir = Nothing
  Set objFSO = Nothing
End Sub

Dodov
nováček
Příspěvky: 6
Registrován: listopad 10
Pohlaví: Muž
Stav:
Offline

Re: Pomozte mi sloučit data z více sešitů. Přikládám přílohy

Příspěvekod Dodov » 09 lis 2010 08:36

Díky funguje to paradně

Dodov
nováček
Příspěvky: 6
Registrován: listopad 10
Pohlaví: Muž
Stav:
Offline

Re: Pomozte mi sloučit data z více sešitů. Přikládám přílohy

Příspěvekod Dodov » 10 lis 2010 08:41

Chtěl jsem si sám dodat do listu1 tlačítka na spuštení a smazání, ale vůbec se mi nedařilo, mohu poprosit o pomoc?
Koukal jsem do jiných maker, abych předělal do tohoto listu, ale bouzel :(

Stačilo by mi tlačítko spuštení a smazání bych si rád potom podle vzoru skusil udělat sám.

Uživatelský avatar
Branscombe
Level 3
Level 3
Příspěvky: 469
Registrován: červen 09
Pohlaví: Muž
Stav:
Offline

Re: Pomozte mi sloučit data z více sešitů. Přikládám přílohy

Příspěvekod Branscombe » 10 lis 2010 09:00

V příloze najdeš soubor s tlačítkem z ovládacích prvků formuláře...
Přílohy
data.xlsm
(18.76 KiB) Staženo 87 x

Dodov
nováček
Příspěvky: 6
Registrován: listopad 10
Pohlaví: Muž
Stav:
Offline

Re: Pomozte mi sloučit data z více sešitů. Přikládám přílohy

Příspěvekod Dodov » 10 lis 2010 09:31

Díky, už vidím kde jsem dělal chybu, vkládal jsem tlačítko z ovládacích prvku ActiveX

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

Re: Pomozte mi sloučit data z více sešitů. Přikládám přílohy

Příspěvekod navstevnik » 10 lis 2010 09:48

Ovladaci prvky z Formularu jsou pozustatkem starych verzi Excelu (<<2000) z duvodu kompatibility.
Ovladaci prvky ActiveX jsou plne programove podporovany z VBA, takze je lze jednoduse za behu programu prizpusobovat. Bohuzel je to trochu narocnejsi na znalosti, coz vede k jejich opomijeni mene zdatnymi a tvrdosijne pouzivani z Formulare..
neco na uvod: http://www.officir.ic.cz/chipex05/07/ex ... _form.html
Naposledy upravil(a) navstevnik dne 10 lis 2010 09:58, celkem upraveno 1 x.

Dodov
nováček
Příspěvky: 6
Registrován: listopad 10
Pohlaví: Muž
Stav:
Offline

Re: Pomozte mi sloučit data z více sešitů. Přikládám přílohy

Příspěvekod Dodov » 10 lis 2010 09:56

Jen tak pro zajímavost, jak by byl kod ve VBA pro tlačítko, který mi sem dal Branscombe? ja to včera práve skoušel pomoci prvku ActiveX a jelikož jsem v tomhle začátečník tak jsem to zkoušel opisovat z jiného macra, ale nepodařilo se mi. Někde jsem na něco zapoměl.

Si můsím sehnat nejakou učebnici ;)

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

Re: Pomozte mi sloučit data z více sešitů. Přikládám přílohy

Příspěvekod navstevnik » 10 lis 2010 10:08

V priloze je ukazka pouziti tlacitka z ActiveX, vyhodnoceni stisku je v modulu List1 a vykonna procedura aktivovana stiskem tlacitka je v modulu Module1
Přílohy
Ukazka.xlsm
(17 KiB) Staženo 83 x

Dodov
nováček
Příspěvky: 6
Registrován: listopad 10
Pohlaví: Muž
Stav:
Offline

Re: Pomozte mi sloučit data z více sešitů. Přikládám přílohy

Příspěvekod Dodov » 10 lis 2010 10:19

Aplikoval jsem do svýho macra a vše funguje, mám dojem, že jsem to včera měl taky takhle, ale to už ted nezjistím.

Děkuji za Vaši pomoc


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Firemní data a bilocker
    od p3v4x » 12 lis 2024 19:00 » v Vše ostatní (hw)
    3
    2682
    od petr22 Zobrazit poslední příspěvek
    12 lis 2024 22:05
  • Jak permanentně smazat data z USB disku?
    od Patrik92 » 16 pro 2024 18:59 » v Vše ostatní (bezp)
    16
    4804
    od Minapark Zobrazit poslední příspěvek
    17 pro 2024 20:54
  • více ssd na desku asrock b450 pro4 Příloha(y)
    od bugicek7lpCZ » 03 lis 2024 16:43 » v Rady s výběrem hw a sestavením PC
    3
    1476
    od MrVoltz Zobrazit poslední příspěvek
    05 lis 2024 08:17
  • Je potřeba 16 nebo 20 a více VRAM ve hrách?
    od p3v4x » 20 črc 2024 23:06 » v Problémy s hardwarem
    2
    2660
    od p3v4x Zobrazit poslední příspěvek
    21 črc 2024 18:39
  • Canon pixma ts5150 w11 nelze tisknout vice kopii na stranku Příloha(y)
    od mrpcz » 20 kvě 2025 07:09 » v Vše ostatní (hw)
    4
    2336
    od petr22 Zobrazit poslední příspěvek
    20 kvě 2025 13:30

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

Kdo je online

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