Stránka 1 z 1

Excel-makro pro tvorbu listů

Napsal: 15 říj 2008 18:45
od crazymen
Zdravím,
potřebuji pomoct s makrem na tvorbu listů v sešitu.
Mám první list kde jsou v sloupci A data např. X,Y,Z,2BŽ + další data příslušná k jednotlivým řádkům.
Potřebuji makro které -1.vytvoří listy s názvy X,Y,Z,2BŽ
-2.v jednotlivých listech přiřadí data z řádku do předem daných buňek podle jedné šablony
Úplně je mi jedno jestli se to makro otevře v novém sešitu,ale pro přehlednost by asi byl dobrý stejný.
Hledal jsem to na netu,ale nikde nenašel :?

Re: Excel-makro pro tvorbu listů

Napsal: 15 říj 2008 18:47
od apurvathea

Re: Excel-makro pro tvorbu listů

Napsal: 15 říj 2008 18:52
od crazymen
Zkus být konkrétnější.... :D,na stránce už jsem byl a majitel na mail nereaguje :-(

Re: Excel-makro pro tvorbu listů

Napsal: 15 říj 2008 21:07
od mike007
1) Není problém. Mohu vytvořit.

2) podle jaké šablony?

Re: Excel-makro pro tvorbu listů

Napsal: 15 říj 2008 21:41
od mike007
Tady máš makro pro tvorbu těch záložek:

Kód: Vybrat vše

Sub vytvorit_listy()

Dim rozsah As Range, bunka As Range
Dim sesit As Worksheet
Dim start As Worksheet
Dim text As String

    Set start = ActiveSheet
    start.AutoFilterMode = False
    ' *** sloupeček s názvy pro listy ***
    Set rozsah = Range("A1", Range("A65536").End(xlUp))
   
       
        Application.DisplayAlerts = False
       
       
        '*** přidáme si pomocný list ***
        Worksheets.Add().Name = "xxx-xxx"
       
           ' *** filtrujeme data ***
            With Worksheets("xxx-xxx")
                rozsah.AdvancedFilter xlFilterCopy, , _
                 Worksheets("xxx-xxx").Range("A1"), True
                 
                 '*** vynecháme první buňku, protože v ní bude název sloupce. Pokud ne, nastavit A1 namísto A2 ***
                 Set rozsah = .Range("A2", .Range("A65536").End(xlUp))
            End With
           
            On Error Resume Next
            With start
                For Each bunka In rozsah
                  text = bunka
                 .Range("A1").AutoFilter 1, text
                    Worksheets(text).Delete
                   
                    '*** a vyrábíme nové listy ... ***
                    Worksheets.Add().Name = text
                   
                    .UsedRange.Copy Destination:=ActiveSheet.Range("A1")
                    ActiveSheet.Cells.Columns.AutoFit
                Next bunka
            End With
           
        With start
            .AutoFilterMode = False
            .Activate
        End With
       
        '*** smažeme pomocný list ***
        Worksheets("xxx-xxx").Delete
       
        On Error GoTo 0
        Application.DisplayAlerts = True
End Sub


V příloze je sešit ve kterém je implementováno makro. Můžeš si vyzkoušet jak to funguje.

Bod číslo 2 si nechám od tebe vysvětlit. Nevím o jakou šablonu se jedná.

Re: Excel-makro pro tvorbu listů

Napsal: 16 říj 2008 08:16
od crazymen
:o ó díky-Jdu to proklepnout :wink:

Re: Excel-makro pro tvorbu listů

Napsal: 16 říj 2008 08:33
od crazymen
:bigups: sqělý...listy jedou jak po másle.díky Miku Bonde :wink:
teď k tomu obsahu,nevím jestli "šablona" je ten správný výraz-potřebuju aby každý z těch nových listů načetl z toho prvního"pomocného" data "(třeba -barva,tvar,velikost,druh-když už jsme u té botaniky :smile: ) a umístil je na stejné místo ve všech nových listech - takže vlastně používá název listu jako jednu z proměnných(aspoň si to myslím) :dontgetit: ,forma toho listu(rozvržení jednotlivých buněk)by asi bylo nejlepší dát zvlášť jako šablonu pro další případné úpravy(pro představu,těch proměnných bude asi 30-40 a exportují se z databáze). :huh:

Re: Excel-makro pro tvorbu listů

Napsal: 16 říj 2008 09:10
od mike007
Takže jestli to chápu dobře, chceš aby se obsah toho základního listu odkud se berou názvy pro nové listy nakopíroval do všech záložek? Bez problémů. Jakmile dorazím z práce ( někdy kolem 21h) tak se na to podívám a pošlu update makra.

Re: Excel-makro pro tvorbu listů  Vyřešeno

Napsal: 16 říj 2008 10:03
od crazymen
Nee,dám příklad:
v řádku 2 je název "javor" a za ním v sloupcích 2-D,E,F,G "malý,tenký,žlutý,mokrý",
v řádku 3 je název "dub" a za ním v sloupcích 3-D,E,F,G "velký,tlustý,zelený,suchý"
,prvním makrem se vytvořily listy s názvy javor a dub-teď potřebuju,aby tyto data byly vždy třeba v buňkách D7,E8,F9,G10,takže se jednotlivá data vlastně "seřadí" v listech.
V tomto případě to bude vypadat asi takto,(teček si nevšímej)
list javor :........malý
..........................tenký
................................ žlutý
......................................mokrý
list dub :........velký
..........................tlustý
................................zelený
......................................suchý
a tak dále-vím,že nastavit potom všechna místa a data bude dost zdlouhavé,ale pak už to poběží automaticky.