EXCEL - zápis z více listů (vždy stejná buňka) do sloupce

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

Moderátor: Mods_senior

Zamčeno
houmrman
nováček
Příspěvky: 2
Registrován: 22 zář 2010 17:38

EXCEL - zápis z více listů (vždy stejná buňka) do sloupce

Příspěvek od houmrman »

Dobrý den,
mám soubor s 481 listy obsahujícími vždy stejnou tabulku. Listy jsou pojmenovány 001;002 ... 481 Potřeboval bych vytáhnout hodnotu vždy stejné buňky ze všech listů a umístit ji do sloupce úvodního listu (adresář) pod sebe.
Ve vzorci se tedy mění pouze název listu, už pár hodin ale bohužel sedím nad tím, jak toho docílit...
(Používám MS Excel 2010 EN Beta)

Kód: Vybrat vše

A1='001'!$A$4
A2='002'!$A$4
A3='003'!$A$4
A4='004'!$A$4

A481='481!$A$4


Viz příloha.
Přílohy
vzor.xlsx
Přiložil jsem náhledový vzorový soubor obsahující 24 těchto listů.
(72.45 KiB) Staženo 62 x
navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: 29 srp 2008 16:49

Re: EXCEL - zápis z více listů (vždy stejná buňka) do sloupc

Příspěvek od navstevnik »

Prilozenou proceduru vloz v editoru VBA (Alt+F11) do standardniho modulu, uprav ci dopln radky pro dalsi prenasene bunky vcetne upravy ofsetu.
Volat z karty Vyvojar>Makra nebo v editoru VBA klavesa F5.
Over na kopii sesitu, testovano v Excelu 2007.

Kód: Vybrat vše

Option Explicit

Sub NacistZListu()
  Dim TCll As Range
  Dim TOfsR As Long
  Dim SWsht As Worksheet, SCll As Range

  Set TCll = Worksheets("adresáø").Range("b2")  ' vychozi cilova bunka
  ' prochaze vsechny listy mimo list adresar
  For Each SWsht In ActiveWorkbook.Worksheets
    If SWsht.Name <> "adresáø" Then
      Set SCll = SWsht.Range("a1")
      TCll.Offset(TOfsR, 0).Value = SCll.Offset(3, 0).Value  ' nazev
      TCll.Offset(TOfsR, 1).Value = Odstran(SCll.Offset(11, 0).Value)  ' tlf
      TCll.Offset(TOfsR, 2).Value = SCll.Offset(6, 0).Value  ' adresa
      TCll.Offset(TOfsR, 3).Value = Odstran(SCll.Offset(10, 0).Value)  ' e-mail
      TCll.Offset(TOfsR, 4).Value = Odstran(SCll.Offset(9, 0).Value)  ' reditel/ka
      TCll.Offset(TOfsR, 5).Value = Odstran(SCll.Offset(10, 1).Value)  ' web
      ' dalsi bunka: vloz radek
      'TCll.Offset(TOfsR, xx).Value = SCll.Offset(yy, zz).Value
      ' a podle cile uprav sloupcovy ofset xx a podle zdroje ofset radku yy a sloupce zz
      TOfsR = TOfsR + 1 ' ofset pro dalsi list
    End If
  Next SWsht
  Worksheets("adresáø").UsedRange.Columns.AutoFit
  ' odstranit objektove promenne
  Set TCll = Nothing
  Set SCll = Nothing
  Set SWsht = Nothing
End Sub
Private Function Odstran(Str As String)
' odstrani cast pred ":" (dvojteckou)
  Odstran = Right(Str, Len(Str) - InStr(Str, ":"))
End Function
houmrman
nováček
Příspěvky: 2
Registrován: 22 zář 2010 17:38

Re: EXCEL - zápis z více listů (vždy stejná buňka) do sloupc

Příspěvek od houmrman »

Dobrý den,
no to je naprostá senzace! Děkuju moc, ušetřilo mi to opravdu hodně práce!! :-) V makrech se nevyznám, tohle bych dohromady sám nedal! Určitě to v budoucnu ještě využiju. Ještě jednou moc a moc díky! (Jste machr) 8)
Přeji hezký den.
Zamčeno
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Přechod z Excel 21 na Excel 24
    od Snekment » » v Kancelářské balíky
    2 Odpovědi
    14472 Zobrazení
    Poslední příspěvek od Snekment
  • Změna poslední číslice ve více číslech najednou
    od Arnold91 » » v Kancelářské balíky
    7 Odpovědi
    11352 Zobrazení
    Poslední příspěvek od Zivan
  • Canon pixma ts5150 w11 nelze tisknout vice kopii na stranku
    od mrpcz » » v Vše ostatní (hw)
    4 Odpovědi
    4348 Zobrazení
    Poslední příspěvek od petr22
  • Pohoda a excel
    od brownwld » » v Kancelářské balíky
    1 Odpovědi
    7395 Zobrazení
    Poslední příspěvek od atari
  • Excel 2016 - vzorec kombinace podmínek
    od MK_Vs » » v Kancelářské balíky
    5 Odpovědi
    6193 Zobrazení
    Poslední příspěvek od lubo.

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