< návrat zpět

MS Excel


Téma: Při dvojkliku smazat rss

Zaslal/a 16.4.2013 17:28

Ahoj, lze přidat do listu makro, které při dvojkliku na řádek do sloupce B odstraní celý řádek? Je to proveditelné když je kurzor(označená buňka) v řádku, který se odstraňuje?

stop Uzamčeno - nelze přidávat nové příspěvky.

Strana:  1 2   další »
#012928
avatar
Ano, lze to.

Nepíšeš si sice o radu, ale jen o potvrzení, že je to možné :-), ale přidám i možný kód... Ten příkaz Select tam není nutný, ale po dvojkliku se normálně otevře buňka pro editaci, vyřešil jsem to právě tímto příkazem.

Kód vlož do Listu, ve kterém chceš, aby to fungovalo.
P.

Př.:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If ActiveCell.Column = 2 Then
Rows(ActiveCell.Row).Delete
Cells(ActiveCell.Row, ActiveCell.Column + 1).Select
End If
End Sub
citovat
#012929
avatar
Teď jsem to zkoušel, funguje výborně...Děkuji
No mě zajímalo zda to jde a zda nad tím nějak laborovat, protože co se týká kódů tak spíše hledám co bych mohl použít tady z fóra a pak jen přizpůsobit pro své potřeby...učím se na tom, ale sám bych to ještě nedal.
Ještě tu mám jeden problémek se kterým bych chtěl pomoci našel jsem níže uvedený kód a potřeboval bych jej upravit. Zatím funguje tak, že v daném rozmezí skryje prázdné řádky. Já bych potřeboval, aby tento kód našel od př 10 řádku ve sloupci B poslední obsazenou buňku (nelze předem definovat kolik bude obsazených řádků) a pokud mezi bude prázdná buňka tak aby se vymazal řádek....je to to rovněž reálné?

Private Sub CommandButton2_Click()
Dim rRowsToHide As Range
Dim i As Integer
For i = 373 To 24 Step -1
If IsEmpty(Cells(i, 3)) And IsEmpty(Cells(i - 1, 3)) Then
If rRowsToHide Is Nothing Then
Set rRowsToHide = Cells(i, 3)
Else
Set rRowsToHide = Union(rRowsToHide, Cells(i, 3))
End If
Else
Exit For
End If
Next

If Not rRowsToHide Is Nothing Then
rRowsToHide.EntireRow.Hidden = True
End If

Set rRowsToHide = Nothing

End Subcitovat
#012931
avatar
Trochu si s tím pohrej :-).
Poslední obsazený řádek lze nalézt např. takto.
P.

Př.:
posledni_obsazeny_radek = ActiveSheet.Range("b1048576").End(xlUp).Rowcitovat
#012936
avatar
Tak jsem si s tím pohrál a bohužel bez uspěchu....metoda pokus omyl selhala:-)
Můžu tě poprosit o celé znění toho kódu?citovat
#012940
Opičák
Tak to zkus ještě jednou. 10 První musíš zjistit ten řádek (číslo), dřív než začne cyklus for-next. Jediné místo kam ho vložit je před něj - takže nový řádek 4 (Mezi Dim a For). Tento kod ti vyhodí nějaké číslo - tedy tvůj poslední obsazený řádek a s tím číslem má pracovat cyklus for-next a ne s číslem 373. Tož místo čísla 373 do kodu napiš proměnnou posledni_obsazeny_radek.
Takže For I = posledni_obsazeny_radek To .... atd.
Když to rozchodíš sám, budeš mít větší radost 9 9 9 , než když ti to někdo napíše a ty to jen zkopíruješcitovat
#012943
avatar
@pavlus
Poslední obsazený řádek lze nalézt např. takto.
P.

Př.:
posledni_obsazeny_radek = ActiveSheet.Range("b1048576").End(xlUp).Row
Ak má excel 2003, tak to fungovať nebude.
dal by som toto.

posledni_obsazeny_radek =ActiveSheet.Cells(ActiveSheet.Range("b:b").Cells.Count, 2).End(xlUp).Rowcitovat
#012959
avatar
Moc děkuji za rady a za nakopnutí správným směrem...
Jen to nějak nedávám...Zatím se v tom špatně orientuju tak celý kód zatím asi nedám.
Ještě si zkusím hrát.... 1citovat
#012961
Opičák
to Petrden:
Tak jsem si s tím pohrál a bohužel bez uspěchu....metoda pokus omyl selhala:-) 7

už se nedivím 9 , ten kod nefunguje tak, jak by měl.
A jelikož píšeš, že Ti to nějak furt nejde 7 , tak přikládám tvůj upravený a doplněný o skrytí nevyužité části tabulky.
Příloha: zip12961_skryt-prazdne-radky.zip (24kB, staženo 14x)
citovat
#013002
avatar
TO Opičák:

Skrývání funguje výborně, ale já bych potřeboval aby se prázdné řádky vymazaly úplně...Zkoušel jsem nahradit Hidden na Delete, ale tudy cesta nevede....hází to chybu. 7

Ještě jeden vedlejší dotaz. Pokud chci makrem přidat více řádků, např. 10. Jak upravit níže uvedený kód aby těch řádků přidal 10?
Rows("6:6").Select
Selection.Insert Shift:=x1Down, CopyOrigin:=xlFormatFromLeftOrAbove

Díky za pomoccitovat
#013004
avatar
Veď si daj nahrávanie makra.

Rows("6:15").Select
Selection.Insert Shift:=x1Down, CopyOrigin:=xlFormatFromLeftOrAbove
citovat

Strana:  1 2   další »

Uživatelské menu

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

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

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

Aktivní diskuse