Ale áno, je to OK. Súbory totiž fungujú do puntíku presne ako popisujete. Neviem kde je problém.
1. Rozbaľovacím zoznamom v D2 a E2 nastavím filtrovací string, a načítajú sa mi relevantné informácie zo súborov CZ/PL do tabuľky A4:Cmilión.
2. Tlačítkom Exportuj vytvorím kópiu celého listu, premenujem podľa filtrovacieho stringu, vymažem tlačítko, prekonvertujem Tabuľku na tabuľku.
3. Iba toto mi nejde do hlavy, na čo požadujete ešte jeden krok navyše, a to stlačenie nepotrebného tlačítka Filtruj ? Veď to robí bod 1.
Fakt netuším, čo je na tom zle, ale je pravda, že niekedy som fakt nechápavý 
Toto Vám vráti obsah všetkých označených buniek v celom zošite, keďže píšete "kdekoliv v sešitu(nepravidelně)" :
Function OznaceneBunky() As String
Dim WS As Worksheet, Bunka As Range, Text As String, bIndex As Integer
 Application.ScreenUpdating = False
 bIndex = ThisWorkbook.ActiveSheet.Index
 For Each WS In ThisWorkbook.Worksheets
 WS.Activate
 For Each Bunka In Selection.Cells
 Text = Text & Bunka & vbNewLine
 Next Bunka
 Next WS
 ThisWorkbook.Worksheets(bIndex).Activate
 OznaceneBunky = Text
 Application.ScreenUpdating = True
End Function
Tento text potom použite v texte mailu, či už pomocou Outlook alebo CDO, každopádne obe možnosti nájdete tu na fóre.
Ale vidím problém v tom, ako Excel zistí, či sa jedná o "označenú" jednobunkovú oblasť, a teda ju má zahrnúť, alebo je to proste iba kurzor, a teda by sa zahrnúť nemala. Jedine vylúčiť listy, v ktorých je oblasť iba jedna bunka...
Skúste pozrieť sem alebo sem, a zdá sa mi, že tu ešte niečo bolo.
Sub KopirujList()
Dim Subor As String, isF, bCalc
 With Application
 bCalc = .Calculation
 .ScreenUpdating = False: .Calculation = xlCalculationManual
 ThisWorkbook.Worksheets("Hárok1").Copy
 With .FileDialog(msoFileDialogSaveAs)
 isF = .Show
 If isF <> 0 Then
 Subor = .SelectedItems(1)
 With ActiveWorkbook
 .SaveAs Filename:=Subor, FileFormat:=xlOpenXMLWorkbook
 .Close
 End With
 Else
 ActiveWorkbook.Close False
 End If
 End With
 .ScreenUpdating = True: .Calculation = bCalc
 End With
End Sub
alebo
Sub KopirujList()
Dim Subor, bCalc
 With Application
 bCalc = .Calculation
 .ScreenUpdating = False: .Calculation = xlCalculationManual
 ThisWorkbook.Worksheets("Hárok1").Copy
 Subor = .GetSaveAsFilename(InitialFileName:=ActiveWorkbook.Name, fileFilter:="Excel súbor (*.xlsx), *.xlsx")
 With ActiveWorkbook
 If Subor <> False Then .SaveAs Filename:=Subor, FileFormat:=xlOpenXMLWorkbook
 .Close False
 End With
 .ScreenUpdating = True: .Calculation = bCalc
 End With
End Sub
-zostavy musia byť na liste Sestavy
-zostavy musia byť Tabuľky (nie tabuľky), a môžete ich mať koľko chcete (teda obmedzil som to dátovým typom byte, teda max 255, dá sa to zmeniť)
-políčka "vyrobit" a "hotovo" musia byť vzhľadom k Tabuľke, ku ktorej sa vzťahujú, na rovnakom mieste ako teraz
-podmienené formátovanie upozorňuje na prípadné prekročenie požiadaviek cez stav skladu v liste Sestavy
-polia "zůstane" vo všetkých zostavách ukazujú aký bude stav skladu po odpočítaný danej položky zo všetkých zostáv (ak sa vyskytuje aj v iných zostavách a je požiadavka na výrobu, teda "vyrobit">0, pričom políčkom "vyrobit" sa násobí pole "ks" tej zostavy, ktorej sa to týka.)
-podmienené formátovanie upozorňuje na 0 alebo záporný stav skladu v liste Sklad
OK. Dúfajme, že zajtra zostane nejaký čas, lebo s tým je to teraz naozaj kritické. Ešte som ani neškrtol s tým čo som sľúbil cez víkend, tak mi to snáď vyjde ...
No to ste teda mohol byť rozhodne ukecanejší :)
1. Takže tie zostavy sú teda objekty Tabuľky (nie obyčajné tabuľky). Prosím potvrďte/vyvráťte.
2. Počet týchto objektov zostáv je statický alebo dynamický ? Prosím odpovedzte "statický" / "dynamický".
3. Ak to náhodou niesú objekty Tabuľky, ale iba obyč tabuľky, tak ich rozmiestnenie je pravidelné a štruktúrované ? Teda sú napr všetky oddelené riadkov a stĺpcom ? Prosím odpovedzte "Ano" / "Ne".
4. Keď stlačíte tlačítko odpisu zo skladu pri vyrobení kusov, čo chcete aby sa udialo so zostavami ? Prosím opíšte vlastnými slovami.
5. A posledná : Keď sa pýtate na makro, tak to moje makro Vám funguje tak, ako ste chcel ? Prosím "Ano" / "Ne"
Keď chcete poradiť, nebuďte taký stručný.
K tomu je potrebné oveľa viac info. Napr. reálna príloha, či sú zostavy tabuľky alebo Tabuľky, koľko ich je, je počet meniaci sa, reálne umiestnenie buniek, čo sa má udiať s tabuľkou po zápise (vymazať, vyčistiť...), ... Veđ nič nevieme. To je ako by som chcel vedieť ako si presne opravim auto bez udania poruchy 
Tak by ste mohol vyskúšať niečo podobné.
Tu máte teda ešte verzie, bez výberu listov, kopírujú všetky listy. Líšia sa iba tým, že v2 dáva na výber zdroj aj cieľ, naproti tomu v3 dáva na výber iba zdroj, a cieľ je zošit, z ktorého sa to spustilo.
Ak si chcete zadať iba konkrétne názvy listov, alebo pozície listov, tak nahradte konštrukciu
For Each SH In WBZ.Worksheets
 If Not Not LST Then u = UBound(LST) + 1: ReDim Preserve LST(1 To u) Else ReDim LST(1 To 1): u = 1
 LST(u) = SH.Name
 Next SH
za
LST = Array("list1", "list222")
alebo
LST = Split("list1,list222", ",")
pri týchto dvoch treba myslím nahradiť deklaráciu Dim LST() za DIM LST
alebo
ReDim LST(1 to 2)
LST(1) = WBZ.Worksheets(1).Name
LST(2) = WBZ.Worksheets(3).Name
Myslím, že ďalej už to zvládnete :)
OK, ešte podotázky na upresnenie.
Užívateľ si teda vyberá len zdrojový súbor, a listy z neho sa kopírujú do toho súboru v ktorom spustil makro ?
Keď vravíte pevný zoznam listov, máte na mysli, že zdrojový zošiť obsahuje napr listy "A", "B", "C", a na pevno sa určí, že sa budú kopírovať len listy "B" a "C" ? Alebo tým pevným zoznamom myslíte to, že sa skopírujú všetky listy ?
Zo zaujímavosti som Vám to overil - a funguje :)
Upravená verzia, podobné ako kolega. Pridal som aj zvýrazňovanie.
Hodnota väčšia ako posledná, sa považuje sa hodnotu náležiacu do poslednej kategórie.
Vydržte sú tam chyby.
Za prvé treba vo vzorci nahradiť
A24
za
(A24-1)
Ďalej tam máte chybný zápis, na 2 riadkoch máte pred číslami medzeru (tuším 71-80, 131-140).
A ďalej nebude to fungovať keď budete mať iný rozptyl ako 10, viď posledný riadok.
Pracujem na inej verzii, vydržte.
napr.
 \n
\nOblíbený formulář Faktura byl vylepšen a rozšířen.
  
  Více se dočtete zde.
Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.