VBA Excel - smazání určitého řádku

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

Moderátor: Mods_senior

Uživatelský avatar
mike007
Master Level 7.5
Master Level 7.5
Příspěvky: 5860
Registrován: 01 srp 2007 18:10
Bydliště: Pardubice
Kontaktovat uživatele:

Re: VBA Excel - smazání určitého řádku

Příspěvek od mike007 »

Já si určitě počkám na finální verzi, protože se nejdříve ptáš jak smazat řádky s podmínkou ve sloupci A a najednou se z toho vyklubal dokument s více podmínkami v různých sloupečcích. Až si dáš dokupy co vlastně chceš, dej vědět. Dříve se tím určitě zabývat nehodlám.
Nejlepší hra je Excel!
Pravidla fóra PC-helpJak označit téma za vyřešené
»»»»»»»»»»»»»»»»»»»»»»»
UPOZORNĚNÍ - můj Skype, Soukromé zprávy či email neslouží jako tech. podpora.
Dotazy prosím pište do fóra. Od toho tu je.
Uživatelský avatar
Branscombe
Level 3
Level 3
Příspěvky: 469
Registrován: 11 čer 2009 21:39

Re: VBA Excel - smazání určitého řádku

Příspěvek od Branscombe »

Toto je finální verze ... ;-)
navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: 29 srp 2008 16:49

Re: VBA Excel - smazání určitého řádku

Příspěvek od navstevnik »

to Branscombe:
precti si, cos napsal:
smaže veškeré řádky v oblasti A4:A"poslední buňka" obsahující ve sloupci 2 podmínku z B1 a ve sloupci 3 podmínku z B2

myslis, ze je to totozne vetou:
smaže v oblasti A4:A"poslední buňka" veškeré řádky obsahující ve sloupci 2 podmínku z B1 a ve sloupci 3 podmínku z B2

Pokud nejses schopen jasne a jednoznacne formulovat pozadavek, pak se dockas odpovedi lisicich se od tvych predstav.
PS.: Poslala manzelka programatora pro jeden chleb s dovetkem: 'Kdyz budou rohliky, vem jich deset". Rohliky byly. Co myslis, ze programator donesl?

// Ach ty manželky ... :lol:
// mike007
Uživatelský avatar
Branscombe
Level 3
Level 3
Příspěvky: 469
Registrován: 11 čer 2009 21:39

Re: VBA Excel - smazání určitého řádku

Příspěvek od Branscombe »

Myslím, že donesl deset chlebů ...

Chlap pokuřuje cigaretu a vyfukuje obláčky dýmu. Jeho přítelkyně se naštve a povídá mu:
"Nevidíš, že je na krabičce napsáno varování, že to škodí zdraví??!"
A chlap na to:
"Lásko, já jsem programátor, nás nezajímají warningy, jen errory..."

Zkusím to definovat lépe:
Potřebuji smazat veškeré řádky odpovídající oběma podmínkám od řádku 4 do konce listu (či naopak - od konce listu po řádek č.4).
Podmínky:
a) ve sloupci 2 se hodnota rovná B2
b) ve sloupci 3 se hodnota rovná B3
navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: 29 srp 2008 16:49

Re: VBA Excel - smazání určitého řádku

Příspěvek od navstevnik »

Pokud plati ukazka smazat_radky.xls, pak podminky v poslednim "upresneni":
a) ve sloupci 2 se hodnota rovná B2
b) ve sloupci 3 se hodnota rovná B3

nejsou splnitelne, protoze platne podminky jsou v B1 a B2.
Posledni navrh procedury:

Kód: Vybrat vše

Option Explicit

Sub SmazRadky()
  Dim Condt1, Condt2, Blk As Range, Cll As Range
  Dim i As Long, k As Long
  Application.ScreenUpdating = False
  With ActiveSheet
    Set Blk = .Range(.Range("A4"), .Range("A4").End(xlDown))
    Condt1 = .Range("b1").Value
    Condt2 = .Range("b2").Value
    i = Blk.Rows.Count  ' pocet radku bloku
    k = i - 1   ' ofset pro posledni radek bloku
    Set Cll = Blk.Resize(1, 1)  ' referencni bunka
    Do While k > -1
      With Cll
        If .Offset(k, 1).Value = Condt1 And .Offset(k, 2).Value = Condt2 Then _
            .Offset(k, 0).EntireRow.Delete
      End With
      k = k - 1
    Loop
  End With
  Application.ScreenUpdating = True
  Set Cll = Nothing
  Set Blk = Nothing
End Sub
Uživatelský avatar
Branscombe
Level 3
Level 3
Příspěvky: 469
Registrován: 11 čer 2009 21:39

Re: VBA Excel - smazání určitého řádku

Příspěvek od Branscombe »

Ahoj, máš pravdu - podmínky z B1 a B2... Díky za makro, ale potřeboval bych aby to makro prohledalo celý list (A4:A"poslední buňka), jelikož oblast může být i nesouvislá a může obsahovat prázné řádky. Vzhledem k tomu že excel 2003 a 2007 mají rozdílný počet řádku, potřeboval bych to asi vzít odspodu... Ale jinak super...
navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: 29 srp 2008 16:49

Re: VBA Excel - smazání určitého řádku

Příspěvek od navstevnik »

A proc jsi to neuvedl hned?
V procedure nahrad radek

Kód: Vybrat vše

Set Blk = .Range(.Range("A4"), .Range("A4").End(xlDown))
timto:

Kód: Vybrat vše

 Set Blk = .Range(.[A4], .Cells(.Rows.Count, 1).End(xlUp))
Uživatelský avatar
Branscombe
Level 3
Level 3
Příspěvky: 469
Registrován: 11 čer 2009 21:39

Re: VBA Excel - smazání určitého řádku

Příspěvek od Branscombe »

Díky moc, vše funguje jak má...
Zamčeno
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Smazání HDD
    od FELINY » » v Vše ostatní (sw)
    9 Odpovědi
    4684 Zobrazení
    Poslední příspěvek od atari
  • Přechod z Excel 21 na Excel 24
    od Snekment » » v Kancelářské balíky
    2 Odpovědi
    14493 Zobrazení
    Poslední příspěvek od Snekment
  • Pohoda a excel
    od brownwld » » v Kancelářské balíky
    1 Odpovědi
    7414 Zobrazení
    Poslední příspěvek od atari
  • Excel 2016 - vzorec kombinace podmínek
    od MK_Vs » » v Kancelářské balíky
    5 Odpovědi
    6214 Zobrazení
    Poslední příspěvek od lubo.
  • Tisk sloupců vedle sebe na A4 - Excel
    od atari » » v Kancelářské balíky
    5 Odpovědi
    5997 Zobrazení
    Poslední příspěvek od atari

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