Stránka 1 z 1

Excel 2010 - makro na vymazání urc.bunek  Vyřešeno

Napsal: 20 črc 2012 18:20
od Petrrr
Dobrý den,

potykam se s tvorbou makra, ktere na listech (momentalne pevne stanovenych) vymaze urcite bunky, aby se tento soubor dal pouzit pro dalsi mesic ci jiny casovy interval.

Problem je, ze s novymi nazvy se meni nazvy jednotlivych listu, proto bych chtel do nastaveni list, ktery se ma vybrat urcit podminku obsahuje (zde mozna nebo, ci kazdy zvlst to uz je blbinka)

Uz asi tyden hledam vsude mozne, jak ve VBA v makru udelat aby to bralo, ze obsahuje.

PS: veci typu ? a * jako nahrada znaku nefunguje :-)

Kód: Vybrat vše

Sub maze()
'
' maze Makro
' smaze obsah sesitu
'
' Klávesová zkratka: Ctrl+j
'

    Sheets("nazev_listu").Select
    Range("C7:F37").Select
    Selection.ClearContents
    Range("K7:T38").Select
    Selection.ClearContents
End Sub

Re: Excel 2010 - makro na vymazání urc.bunek

Napsal: 20 črc 2012 19:01
od karel.laska
Zdravím,

asi bude odpověď poměrně jednoduchá...
Makro se provede na tom listu který je aktuální, tzn. pokud vynecháte definici listu, tak na tom listu kde jej spustíte, tam se provede.
Pokud budete chtít však stále adresovat list(z nějakého důvodu), stačí

Kód: Vybrat vše

Sub maze()
'
' maze Makro
' smaze obsah sesitu
'
' Klávesová zkratka: Ctrl+j
'
ListProSmazani="Nazevlistu"

    Sheets(ListProSmazani).Select
    Range("C7:F37").Select
    Selection.ClearContents
    Range("K7:T38").Select
    Selection.ClearContents
End Sub


možná lepší zápis by byl:

Kód: Vybrat vše


ListProSmazani="Nazevlistu"

    Sheets(ListProSmazani).Range("C7:F37").ClearContents
    Sheets(ListProSmazani).Range("K7:T37").ClearContents
End Sub




Tady http://www.officir.ic.cz/excelentne.html si myslím počtete dostatečně :-)

S pozdravem
Karel Láska

Re: Excel 2010 - makro na vymazání urc.bunek

Napsal: 20 črc 2012 19:05
od cmuch
No já bych použil ActiveSheet

Kód: Vybrat vše

Sub maze()
'
' maze Makro
' smaze obsah sesitu
'
' Klávesová zkratka: Ctrl+j
'
    ActiveSheet.Range("C7:F37").ClearContents
    ActiveSheet.Range("K7:T38").ClearContents
End Sub

Prostě na jakém listu se to spustí, tam se provede.

EDIT:// Karel byl rychlejší

Re: Excel 2010 - makro na vymazání urc.bunek

Napsal: 20 črc 2012 21:11
od Petrrr
o teto moznosti vim, ja bych spis ocenil funkci kdy by na zaklade toho ze v nazvu listu je treba ??_???_ruznytext nasledne provede makro, bud zvlast pro ruzne nazvy listu (??_???_DPH, ??_???_vyvoz nvm vic napadu me nenapada) ale z osobni zkusenosti jsem zazil, ze slo o 10-30 listu a tento pocet ma stale narustat :(

o pouziti makra na aktualni list jsem cetl, nikde jsem ale nenasel tu moznost s podminkou obsahuje, zkousel jsem pochopit promene ve VBA, ale tezko rici

PS: pisu ted v rychlosti neco musim narychlo dodelat

Re: Excel 2010 - makro na vymazání urc.bunek

Napsal: 20 črc 2012 21:27
od cmuch
A co potom takto

Kód: Vybrat vše

Sub makro()
  Dim Wsht As Worksheet
  ' pro vsechny listy mimo List1
  For Each Wsht In ThisWorkbook.Worksheets
    If Wsht.Name <> "List1" Then
              ' And Wsht.Name <> "jmenolistu" Then ' takto můžeš přidávat listy které ne
      With Wsht
        .Range("C7:F37").ClearContents
        .Range("K7:T38").ClearContents
      End With
    End If
  Next
End Sub

Re: Excel 2010 - makro na vymazání urc.bunek

Napsal: 21 črc 2012 08:21
od Petrrr
toby asi slo, ale nejak jsem asi tupej :D

Kód: Vybrat vše

Sub makro()
  Dim Wsht As Worksheet
  For Each Wsht In ThisWorkbook.Worksheets
    If Wsht.Name <> "nazev_list1" Then
              ' And Wsht.Name <> "nazev_list2" And Wsht.Name <> "nazev_list3" Then '
      With Wsht
        .Range("C7:F37").ClearContents
        .Range("K7:T38").ClearContents
      End With
    End If
  Next
End Sub


listy 1-3 se prejmenovavat nebudou a nebudou se asi vymazavat jde o jakesi souhrny z tech ostatnich, ale nejspise jsem to nekde zvoral, (nepochopil uplne zapis makra)

// ted puju zas hledat, http://www.dailyfreecode.com/forum/next-next-25992.aspx
// tak asi ne musim ted neco resit s unikatnim cislem v excelu, aby se ruznymi zpusobynestalo ze tam bude 2* (spis 2* s tim cislem vytisknuto)

Re: Excel 2010 - makro na vymazání urc.bunek

Napsal: 21 črc 2012 09:25
od cmuch
Ten zápis by vypadal takto, navíc tam byl ten apostrof a then před tím and.

Kód: Vybrat vše

Sub makro()
  Dim Wsht As Worksheet
  For Each Wsht In ThisWorkbook.Worksheets
    If Wsht.Name <> "nazev_list1" _
              And Wsht.Name <> "nazev_list2" And Wsht.Name <> "nazev_list3" Then
      With Wsht
        .Range("C7:F37").ClearContents
        .Range("K7:T38").ClearContents
      End With
    End If
  Next
End Sub

Re: Excel 2010 - makro na vymazání urc.bunek

Napsal: 21 črc 2012 12:02
od Petrrr
diky moc jsem tam tamto zblbnul, ted dneska nejak snad vyresim to cislo, akorat teda nvm jak ho ukladat asinejak pres access