< návrat zpět

MS Excel


Téma: Zmazání řádku na více listech současně rss

Zaslal/a 7.11.2013 14:46

Ahoj, jdou smazat stejné řádky na více listech dle označeného řádku na prvním listu? Když v prvním listu dvojklikem na buňku aktivuji makro, které odstraní řádek kde je "kurzor" tak aby dále v Listu1,Listu2,Listu3 byl odstraněn ten samý řádek...je to proveditelné?
Níže uvádím kód, který smaže řádek na listu:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Při dvojkliku smazat řádek s kurzorem
Select Case Smazat
Case vbYes
If ActiveCell.Column = 1 Then
Rows(ActiveCell.Row).Delete
Cells(ActiveCell.Row, ActiveCell.Column).Select
End If
Case vbNo
End Select
Exit Sub
End Sub

Zaslat odpověď >

#016169
avatar
Zkusím pomoct já. Ten kód mi na dvojklik nesmaže nic.
Já tuhle fintu s dvojklikem používám taky různě pro spuštění maker, má to nevýhodu pro toho, kdo je zvyklý editovat obsah buňky dvojklikem přímo v ní, pak se třeba spustí to co člověk zrovna nechce.
Proto jsem v ukázce tu oblast pro klik na smazání řádků omezil na sloupec A v Listu 1. Vyzkoušej.
Edit: Aha, já jen smažu obsah řádku, ty chceš odstranit, ale to se dá snadno změnit na .Delete
Příloha: zip16169_smaz-radky-dvojklik.zip (16kB, staženo 23x)
citovat
#016170
avatar
Super, funguje lépe, když na dvojklik reaguje jen vybraný sloupec. Ale já pořebuji řádek odstranit úplně, špatně jsem to napsal 8
Zkoušel jsem nahradit Clear... na Delete, ale odstraní se jen řádek na prvním listu. Půjde to nějak zařídit i na ostatní?citovat
#016171
avatar
Teď čtu tvůj Edit, Delete odstraní řádek jen na prvním listu:-(citovat
#016172
avatar
Mě to Dingovo smaže řádek na všech listech pokud se dá delete místo clear...citovat
#016173
avatar
No a vlastně to z části neřeší můj problém. Potřeboval bych přesně definovat listy ve kterých by se mazalo....citovat
#016174
avatar
Pokud zaměním .ClearContents za .Delete tak se mě odstraní jen řádek v prvním listu. Dělám něco blbě? 8
Edit: Asi dělal pač už mě to jde. Takže omluva:-)
Nyní tedy zda půjde definovat názvy listů kde se bude řádek odstraňovat?citovat
#016175
avatar
Třeba
Sub makro()
Dim Wsht As Worksheet
' pro vsechny listy mimo list1
For Each Wsht In ThisWorkbook.Worksheets
If Wsht.Name <> "List1" Then
With Wsht
' smaz radek
.Rows(5).Delete
End With
End If
Next
End Sub
citovat
#016176
avatar
Už jsem zase tu. Pokud těch listů není moc, stačí je vypsat, jak je v příloze. Taky se nabízí vynechat volání dalšího makra a napsat to mazání hned do události listu. Ale zvyknul jsem si to hlavní dávat do modulu, odtud je lepší "Přístup" kamkoliv do sešitu, bez dlouhého adresování. Je to tam v poznámce naznačené.
Příloha: zip16176_smaz-radky-dvojklik-v2.zip (16kB, staženo 20x)
citovat
#016178
avatar
Já bych to řešil výběrem (označením) listů pomocí klávesy Shift nebo Ctrl na "ouškách" listů a pravým tlačítkem myši na čísle řádku výběrem Odstranit. Úkon bude proveden na vybraných listech.citovat
#016179
avatar
To Dingo...tohle je úplně pecka, díky
To cmuch...vyzkoušeno, tohle použiji v jiném sešitě
To chey...takto jsem to dosud řešil, ale potřeboval jsem to z automatizovat, jelikož mě nebavilo označovat Více než deset listů...

Všem moc děkuji za návrhy a řešenícitovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje