Excel-makro na promazání řádků

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

Moderátor: Mods_senior

Zamčeno
spejle
nováček
Příspěvky: 17
Registrován: 15 zář 2010 12:20

Excel-makro na promazání řádků

Příspěvek od spejle »

Dobrý den,
mám excel s mnoha řádky dat z experimentů a potřebovala bych nějaký předpis na to, aby mi v listu zůstal například každý desátý nebo každý druhý řádek a zbylé byly vymazány. Nevím si s tím rady, proto Vás moc prosím o pomoc. Předem děkuji, Iva.
navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: 29 srp 2008 16:49

Re: Excel-makro na promazání řádků

Příspěvek od navstevnik »

Pouzij nize uvedenou proceduru (v editoru VBA - Alt+F11 - vloz do standardniho modulu, uprav nazev listu: Worksheets("nazev listu").., zavolej z nabidka Nastroje>Makro>...):

Kód: Vybrat vše

Option Explicit

' ponechat kazdy n-ty radek:
' Kazdy=(2;3;4;...,255) - ponecha pocinaje n-tym radkem nebo pocatkem kazdy m-ty radek
Sub OdstranRadky()
Dim MyArea As Range, PoslRadek As Long, Kazdy As Byte, Pocatek As Long
Dim Odstran As Range, Ofs As Long
  Set MyArea = Worksheets("list3").UsedRange
  If IsEmpty(MyArea) Then End
  PoslRadek = MyArea.Rows.Count
  Application.ScreenUpdating = False
'************************
  Pocatek = 0 ' nastavit
  Kazdy = 5 ' nastavit
'************************
  Set Odstran = Worksheets("list3").Range("1:" & Kazdy - 1).Rows
  If Pocatek = 0 Then
    Ofs = Kazdy
  Else
    Ofs = Pocatek
  End If
  Kazdy = Kazdy - 1
  Do While Ofs < PoslRadek
    Odstran.Offset(Ofs, 0).EntireRow.Delete
    Ofs = Ofs + 1
    PoslRadek = PoslRadek - Kazdy
  Loop
  If Pocatek = 0 Then Odstran.EntireRow.Delete
  Range("a1").Select
  Application.ScreenUpdating = True
End Sub

Testuj na kopii sesitu, jinak hrozi v pripade chyby ztrata dat!
vice k VBA zde: http://www.officir.ic.cz/excelentne.html
Uživatelský avatar
Poki
Level 2
Level 2
Příspěvky: 237
Registrován: 09 pro 2009 17:01

Re: Excel-makro na promazání řádků

Příspěvek od Poki »

Zdravim,
otazka je, jestli tim 'zustal' myslite to, jestli se nepotrebne radky maji smazat nebo odstranit. Zkusim obe varianty.
Timto kodem muzete radky jen Smazat (kolikaty radek bude smazat zalezi na hodnote promenne Pocet):

Kód: Vybrat vše

Sub Smazat()
Dim Pocet As Integer
Pocet = 2
For i = 1 To Application.WorksheetFunction.CountA(Range("a:a")) Step Pocet
   Rows(i).ClearContents
Next
End Sub

Pokud chcete radky Odtranit, pouzijte tento kod (kolikaty radek bude smazat zalezi na hodnote promenne Pocet):

Kód: Vybrat vše

Sub Odstranit()
Dim Pocet As Integer
Pocet = 2
For i = Pocet To Application.WorksheetFunction.CountA(Range("a:a")) Step Pocet - 1
   Rows(i).Delete
Next
End Sub
spejle
nováček
Příspěvky: 17
Registrován: 15 zář 2010 12:20

Re: Excel-makro na promazání řádků

Příspěvek od spejle »

Moc děkuji
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
  • 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.
  • Tisk sloupců vedle sebe na A4 - Excel
    od atari » » v Kancelářské balíky
    5 Odpovědi
    5977 Zobrazení
    Poslední příspěvek od atari

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