chtěl bych někoho poprosit, jestli někdo nemá někde schovaný kód do VBA pro Excel, který umí následující:
Je-li v řádku kdekoliv k nalezení klíčové slovo (dejme třeba "auto"), smaž celý řádek
Takhle procházej celý sheet a smaž všechny řádky, ve kterém se toto klíčové slovo nachází
Je důležité, že to nesmí být stylem "hodnota buňky = "auto" - smaž řádek", ale představte si to cca tak, že byste označili řádek, CTRL+F, pokud bylo "auto" nalezeno, tak smaž řádek - a takhle procházet řádek po řádku
Podobné tématko už tu bylo, ale tam se jednalo o něco trochu jiného...
Děkuji!
--- Doplnění předchozího příspěvku (22 Led 2015 20:12) ---
tak jsem našel toto:
Kód: Vybrat vše
Dim rng As Range, cell As Range, del As Range
Set rng = Intersect(Range("A:BQ"), ActiveSheet.UsedRange)
For Each cell In rng
If cell.Value Like "auto" _
Then
If del Is Nothing Then
Set del = cell
Else: Set del = Union(del, cell)
End If
End If
Next cell
On Error Resume Next
del.EntireRow.Delete
Pro mě to funguje skvěle, ovšem bych potřeboval, aby to fungovalo i když je v buňce něco jiného, než auto. Zkoušel jsem tam dát "*auto*", ale to nefunguje. Nějaké sugesce prosím?
--- Doplnění předchozího příspěvku (22 Led 2015 20:52) ---
zkusil jsem to udělat touto metodou:
Všechny buňky s klíčovým slovem jsem vyhledal a nahradil právě tím klíčovým slovem a to takto:
Kód: Vybrat vše
Cells.Select
Selection.Replace What:="*bearer*", Replacement:="bearer", LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Bohužel, z nějakého důvodu pak přestane fungovat kód viz výše.
--- Doplnění předchozího příspěvku (22 Led 2015 22:31) ---
Poradil jsem si nakonec sam, tady je vysledek:
Kód: Vybrat vše
'Smazani beareru
Cells.Select
Selection.Replace What:="*bearer*", Replacement:="bearer", LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Dim pomocnaBearer As Range
Dim SrchRng
Set SrchRng = ActiveSheet.UsedRange
Do
Set pomocnaBearer = SrchRng.Find("bearer", LookIn:=xlValues)
If Not pomocnaBearer Is Nothing Then pomocnaBearer.EntireRow.Delete
Loop While Not pomocnaBearer Is Nothing
Mnoho lidi by reklo ze to neni elegantni reseni ale funguje spolehlive a rychle. V urcitem smyslu take setri spotrebu vykonu.