Stránka 1 z 1
Makro - mazání v excelu Vyřešeno
Napsal: 25 bře 2009 10:47
od Kiwi1
Zdravím.
Potřeboval bych poradit jak napsat makro. Jedná se o to, že pokuď je buňka ve sloupci F prázdná, smaže se celej řádek.
A ještě jednu věc. Jsem začátečník a potřeboval bych vědět jak postupně spustit jedno makro za druhým.
Děkuji
// Přesunuto do sekce Kancelářské balíky
//mike007
Re: Makro - mazání v excelu
Napsal: 25 bře 2009 11:02
od mike007
Vítej na Pc-help
Tvůj dotaz patří do sekce Kancelářské balíky, protože se jedná o Excel. Téma jsem tedy přesunul.
Zde máš to makro:
Sub radky()
Dim radek As Long
For radek = 1 To Range("F65536").End(xlUp).Row
If IsEmpty(Cells(radek, 6)) Then Rows(radek).Delete
Next radek
End Sub
nebo
Sub radky2()
On Error Resume Next
ActiveSheet.Columns("f").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
On Error GoTo 0
End Sub
Re: Makro - mazání v excelu
Napsal: 25 bře 2009 11:22
od X
První makro, proceduru, podprogram spustíš pomocí nějaké události (kliknutí na tlačítko, otevření listu, změna buňky, ...). Volat další proceduru můžeš takto [Call] nazev [(parametr, ...)] - (vše v hranatých závorkách není povinné, ale zase je to přehlednější kód (s Call). Neudálostní kód by měl být v modulu (moduleX) na rozdíl od událostí (ListX, ThisWorkbook = list, sešit). Například veřejnou deklaraci (Public) se sice povede v listu či sešitu napsat, ale nebude fungovat (Public = viditelné odevšad, Private = jen v modulu).
Re: Makro - mazání v excelu
Napsal: 25 bře 2009 11:51
od Kiwi1
Všem děkuji za rady...

Re: Makro - mazání v excelu
Napsal: 25 bře 2009 11:53
od mike007
Re: Makro - mazání v excelu
Napsal: 25 bře 2009 12:02
od Kiwi1
Ještě bych potřeboval poradit jak naráz nebo postupně vymazat sloupce A,C,E,F,G,H,I,J,L,M,N,P,R,S,T,V,W,X,Z,AA.
Proč takhle blbě? Protože se mi data do excelu přenášejí z jednoho programu a jsou tam nadbytečné prázdné sloupce. A já potřebuju odstranit.
Předem děkuji za rady.
Re: Makro - mazání v excelu
Napsal: 25 bře 2009 12:11
od mike007
Takové makro si dokážeš snad udělat sám přes záznamník...
Range("A:A,C:C,E:E,F:F,G:G,H:H,I:I,J:J,L:L,M:M,N:N,P:P,R:R,S:S,T:T,V:V,W:W,X:X,Z:Z,AA:AA").Select
Selection.Delete Shift:=xlToLeft
Re: Makro - mazání v excelu
Napsal: 25 bře 2009 13:17
od Kiwi1
To jsem samozdřejmě zkoušel ale když jsem ho pak vyzkoušel tak mi smazal úplně všechno. A taky jsem zkoušel to samé co jsi mi posílal ale při spuštění mi to píše: " Run-time error '1004 Tento příkaz nelze použít u překrývajících se výběrů."
Re: Makro - mazání v excelu
Napsal: 25 bře 2009 14:26
od navstevnik
" Run-time error '1004 Tento příkaz nelze použít u překrývajících se výběrů." znamena, ze ve vyberu nesmi byt stejny sloupec, napr.: ...,S:S,
T:T,T:T,V:V,...
Jinak lze makro upravit na tvar:
Kód: Vybrat vše
Option Explicit
Sub Odstran()
Range("A:A,C:C,E:J,L:N,P:P,R:T,V:X,Z:AA").Delete Shift:=xlToLeft
End Sub
Re: Makro - mazání v excelu
Napsal: 25 bře 2009 14:39
od Kiwi1
Paráda. Už to funguje... Moc děkuju.
// Téma označeno za vyřešené. Příště to udělej sám. Díky!
// mike007