makro na označení řádků s podmínkou Vyřešeno

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

Moderátor: Mods_senior

r4ms3scz
nováček
Příspěvky: 4
Registrován: srpen 13
Pohlaví: Nespecifikováno
Stav:
Offline

makro na označení řádků s podmínkou  Vyřešeno

Příspěvekod r4ms3scz » 20 srp 2013 13:06

Ahoj,

chtěl bych Vás poprosit o pomoc. Potřeboval bych makro, které označí řádky podle podmínky. Podmínka je ve sloupci B a potřebuji označit pouze řádky kde je "Email - Outbound" a následně tyto řádky smazat. Viz příloha. Snažil jsem se to nějak pobastlit sám pomocí makra, ale nejsem natolik zkušený abych to zvládl. Potřebuji to provést pomocí makra, nikoliv podmíněného formátování.

Zkoušel jsem variantu, nejprve použít filtr a poté dané řádky označit, ale vždy se mi označí i první řádek, který potřebuji zachovat.

Předem díky za pomoc
Přílohy
priklad.xlsm
(104.88 KiB) Staženo 14 x

Reklama
cmuch
Level 4.5
Level 4.5
Příspěvky: 1547
Registrován: březen 11
Bydliště: Drsná Vysočina :D
Pohlaví: Muž
Stav:
Offline

Re: makro na označení řádků s podmínkou

Příspěvekod cmuch » 20 srp 2013 14:05

Vítej na PC-Help

Tady je jedno z možných řešení

Kód: Vybrat vše

Sub SmazVybraneRadky()
  Dim r As Long

  Application.ScreenUpdating = False

  For r = Rows.Count To 2 Step -1
    If Cells(r, "B") = "Email - Outbound" Then
      Rows(r).Delete
    End If
  Next r

  Application.ScreenUpdating = True
End Sub

r4ms3scz
nováček
Příspěvky: 4
Registrován: srpen 13
Pohlaví: Nespecifikováno
Stav:
Offline

Re: makro na označení řádků s podmínkou

Příspěvekod r4ms3scz » 20 srp 2013 14:25

Ahoj,

diky za rychlou odpověď. Makro je super, nicméně excel pro který to potřebuji aplikovat obsahuje spousty výpočtů a pokud se řádky mažou postupně, excel to zahltí a buď spadne, nebo po každém umazání jednotlivého řádku přepočítává hodnoty a trvá to velice velice dlouho. Šlo by to vyřešit jinak? Např nejprve zapnutím filtru na danou hodnotu, následným označením všech řádků a smazáním všech řádků najednou?

napadlo me neco jako tohle, ale netusim jak to upravit :( oznací všechny radky ktere nejsou prazdne, ale ja potřebuji aby byl prvni radek zachovany

Kód: Vybrat vše

  Dim PosledniRadek As Long, i As Long
    Dim OznacOblast As Range

    With Sheets("List1")
        PosledniRadek = .Range("B" & .rows.Count).End(xlUp).Row

        For i = 1 To PosledniRadek
            If Len(Trim(.Range("B" & i).Value)) <> 0 Then
                If OznacOblast Is Nothing Then
                    Set OznacOblast = .rows(i)
                Else
                    Set OznacOblast = Union(OznacOblast, .rows(i))
                End If
            End If
        Next

        If Not OznacOblast Is Nothing Then
            ' tato oblast se může zkopírovat ... OznacOblast.Copy Sheets("List2").Rows(1)

            OznacOblast.Select
        End If
       
    End With


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

Kdo je online

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