Stránka 1 z 1

Potřebuji makro na mazání řádků

Napsal: 06 kvě 2009 11:10
od marek26
dobry den

prosim o pomoc

Columns("C:C").Select
Selection.AutoFilter
ActiveSheet.Range("$C$1:$C$20000").AutoFilter Field:=1, Criteria1:= _
"#NEDOSTUPNÝ"

je makro pre filter kde vybere v stlpci "C" #NEDOSTUPNÝ lenze ako urobit syntax tak aby mi vymazal prave tieto riadky #NEDOSTUPNÝ a samozrejme ostatne nech nevymaze.(rucne to vypada asi tak ze dame do filtru #NEDOSTUPNÝ a oznacime vsetko a dame pravou mysou "ODSTRANIT RADEK"
Este 1 problem neviem ako urcit variabilny RANGE vzdy davam racej rezervu (C1:C20000) pricom by stacil rozsah napr.C1:C5252 (vzdy podla mnozstva radku)
(raz ma subor 3252 riadkov, raz 4585, 458, 985 ... atd)

vdaka za pomoc

// Název tématu upraven na něco konkrétnějšího
// mike007

Re: Makro xls. ....filter  Vyřešeno

Napsal: 06 kvě 2009 11:19
od mike007
Makro níže ti najde řádky s hodnotou #NEDOSTUPNÝ ve sloupci C a ty smaže.

sub smazat()
Dim Firstrow As Long
Dim Lastrow As Long
Dim Lrow As Long
Dim CalcMode As Long
Dim ViewMode As Long
With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
End With
With ActiveSheet
.Select
ViewMode = ActiveWindow.View
ActiveWindow.View = xlNormalView
.DisplayPageBreaks = False
Firstrow = .UsedRange.Cells(1).Row
Lastrow = .UsedRange.Rows(.UsedRange.Rows.Count).Row
For Lrow = Lastrow To Firstrow Step -1
With .Cells(Lrow, "C")
If Not IsError(.Value) Then
Select Case .Value
Case Is = "#NEDOSTUPNÝ": .EntireRow.Delete
End Select
End If
End With
Next Lrow
End With
ActiveWindow.View = ViewMode
With Application
.Calculation = CalcMode
End With
end sub

Re: Potřebuji makro na mazání řádků

Napsal: 09 kvě 2009 21:28
od marek26
diky ..trosku dlhe ale dobre..skusim to som vdacny (asi som dal nevhodny nadpis priste bude lepsi)

Re: Potřebuji makro na mazání řádků

Napsal: 19 bře 2010 10:49
od marek26
Prosim ta, asi tam mam chybicku, teraz nepotrebujem smazat NEDOSTUPNY, ale v stlpci B ak bunka neobsahuje IČO, tak nech vymaze cele riadky (cize ostanu mi cele riadky take, ktore v stlpci B obsahuje "ičo") ale tento prikaz len prejde ale nic sa neudeje...
V prilohe je vzorovy subor, cize ak prejde prikaz chcem tento subor mat ocisteny tym ze makro vymaze vsetky riadky ktore v stlpci B neobsahuje "ičo" Ak bude prikaz obsahovat aj to ze vymaze hned stlpec A aj stlpec C to je dobre tie su mi zbytocne, ide mi len oto aby zostali len ičá.

Kód: Vybrat vše

 Workbooks.Open Filename:="C:\Users\marek\Documents\konkurzy.xls"
Dim Firstrow As Long
Dim Lastrow As Long
Dim Lrow As Long
Dim CalcMode As Long
Dim ViewMode As Long
With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
End With
With ActiveSheet
.Select
ViewMode = ActiveWindow.View
ActiveWindow.View = xlNormalView
.DisplayPageBreaks = False
Firstrow = .UsedRange.Cells(1).Row
Lastrow = .UsedRange.Rows(.UsedRange.Rows.Count).Row
For Lrow = Lastrow To Firstrow Step -1
With .Cells(Lrow, "B")
If Not IsError(.Value) Then
Select Case .Value
Case Is <> "*IČO*": .EntireRow.Delete
End Select
End If
End With
Next Lrow
End With
ActiveWindow.View = ViewMode
With Application
.Calculation = CalcMode
End With
End Sub



Diky velice moc...