Stránka 1 z 1
Makro pro více listů
Napsal: 02 bře 2011 19:20
od cmuch
Ahoj,
potřeboval bych radu jestli lze udělat nějaké makro, které když upravím se projeví na více listech najednou.
Např:
Mám 12 listů označených 01...12 a na 01 udělám makro že se sečtou data v sloupcích B a C a výsledek bude na D a ten se zkopíruje na G
a pro ostatní listy to musím v VBA ručně zkopírovat pro všech 12 listů.
Ale když pak potřebuji ještě v 01 něco poupravit tak zas musím vše ručně upravovat.
Ale kdyby bylo něco čím bych to upravil v jednom listě a to se zároveň udělalo i v dalších.
Děkuji za pomoc
Re: Makro pro více listů
Napsal: 02 bře 2011 19:54
od mike007
Vítej na PC-help.
Proč tak složitě? Napiš si makro, které ti najednou upraví všechny záložky ...
Kód: Vybrat vše
Sub makro()
Dim ws As Worksheet
For Each ws In Worksheets
....
Next
End Sub
případně si další záložky provzorečkuj
Re: Makro pro více listů
Napsal: 03 bře 2011 16:02
od cmuch
Ahoj,
dík za přivítání.
Ale asi jsem to nepochopil
Tak přikládám soubor kde je k ukázce mé makro - modul 2 a to z předcozího příspěvku - modul 1
Dík
Re: Makro pro více listů
Napsal: 03 bře 2011 17:01
od navstevnik
Pokud nejsou ve sloupci AT2:AT333 potrebne vzorce, potom procedura muze vyadat takto (ve standardnim modulu, modifikuj dle potreby):
Kód: Vybrat vše
Option Explicit
Sub makro()
Dim Wsht As Worksheet, Blk As Range, Cll As Range
' pro vsechny listy mimo list prehled
For Each Wsht In ThisWorkbook.Worksheets
If Wsht.Name <> "prehled" Then
With Wsht
' vlozit a formatovat hlavicku sloupce
With .Range("AT1")
.Value = "souctik"
With .Font
.Name = "Arial"
.Bold = True
.Size = 10
End With
End With
' definovat blok souctu
Set Blk = Wsht.Range("at2:at333")
' secit dvojice bunek ATxx = AKxx + AMxx
For Each Cll In Blk.Cells
With Cll
.Value = .Offset(0, -9).Value + .Offset(0, -7).Value
End With
Next Cll
' prekopirovat sloupec A:A > AS:AS
.Range("as:as").Value = .Range("a:a").Value
End With
End If
Next
End Sub
Re: Makro pro více listů
Napsal: 03 bře 2011 17:24
od cmuch
To je úplně ono
Díky moc.
Ale ještě jedna malá otázečka, když přidám nový list jak ho vyřadím z toho makra tak jako "prehled"?
Nějak se mi to nedaří

Re: Makro pro více listů
Napsal: 03 bře 2011 18:00
od navstevnik
V procedure uprav radek na tvar:
If Wsht.Name <> "prehled" And Wsht.Name <> "jmenolistu" Then
Re: Makro pro více listů Vyřešeno
Napsal: 03 bře 2011 18:05
od cmuch
Dík moc.
Já tam dával znaky jak ve vzorcích a tak, ale dát tam zase "Wsht.Name <>" to mě nenapadlo.