VBA Excel - smazání určitého řádku Vyřešeno

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: srpen 07
Bydliště: Pardubice
Pohlaví: Muž
Stav:
Offline
Kontakt:

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

Příspěvekod mike007 » 19 bře 2010 10:14

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 pište do fóra. Od toho tu je.

Reklama
Uživatelský avatar
Branscombe
Level 3
Level 3
Příspěvky: 469
Registrován: červen 09
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod Branscombe » 19 bře 2010 10:15

Toto je finální verze ... ;-)

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

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

Příspěvekod navstevnik » 19 bře 2010 17:30

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: červen 09
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod Branscombe » 19 bře 2010 20:56

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: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

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

Příspěvekod navstevnik » 20 bře 2010 08:26

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: červen 09
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod Branscombe » 21 bře 2010 20:48

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: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

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

Příspěvekod navstevnik » 21 bře 2010 22:22

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: červen 09
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod Branscombe » 23 bře 2010 10:55

Díky moc, vše funguje jak má...


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Smazání HDD
    od FELINY » 27 kvě 2025 12:17 » v Vše ostatní (sw)
    9
    2753
    od atari Zobrazit poslední příspěvek
    28 kvě 2025 18:09
  • EXCEL -jak otevřít 2 excel sobory abych je viděla současne a samostatně
    od Ketty02 » 30 srp 2024 21:19 » v Vše ostatní (sw)
    2
    4759
    od Riviera kid Zobrazit poslední příspěvek
    02 zář 2024 16:21
  • Žádám o uzavření účtu a smazání příspěvků
    od Uziv00 » 16 črc 2024 09:30 » v PC-HELP - připomínky k fóru
    1
    4294
    od Ltb Zobrazit poslední příspěvek
    16 črc 2024 10:10
  • Přechod z Excel 21 na Excel 24
    od Snekment » 29 led 2025 13:46 » v Kancelářské balíky
    2
    12171
    od Snekment Zobrazit poslední příspěvek
    29 led 2025 15:05
  • Pohoda a excel Příloha(y)
    od brownwld » 06 kvě 2025 17:28 » v Kancelářské balíky
    1
    4565
    od atari Zobrazit poslední příspěvek
    07 kvě 2025 09:41

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

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 5 hostů