< návrat zpět

MS Excel


Téma: Makro účinné podľa pozície tlačítka rss

Zaslal/a 8.9.2018 19:07

Dobrý večer.
Poprosím o radu. Mám makro na doplnenie, resp. vymazanie časti textu v bunke, ktoré spúšťam tlačítkom formulára. Je pridelené konkrétnej bunke. Takýchto buniek však mám viac v ďalších riadkoch, v každom riadku je tlačítko. Dá sa upraviť to makro tak, aby som ho nemusel písať pre každé tlačítko, teda riadok zvlášť, ale aby fungovalo na konkrétny riadok podľa pozície tlačítka?
Sub Služobná_cesta_2()
If InStr(Range("A2").Value, "služobná cesta - ") > 0 Then
Range("A2").Value = Replace(Range("A2"), "služobná cesta - ", "")
Exit Sub
Else
Range("A2").Value = "služobná cesta - " & Range("A2").Value
End If
End Sub
Nejde to podľa aktívnej bunky, lebo má fungovať aj na bunky, ktoré aktívne nie sú.
Ďakujem vopred

Příloha: zip41433_pridanie_vymaz_textu_makro.zip (16kB, staženo 28x)
Zaslat odpověď >

#041434
avatar
Napadá mě řešení bez tlačítek, přes událost listu - například přes BeforeDoubleClick nebo BeforeRightClick. Jinými slovy makro spouštět dvojklikem myši (resp. kliknutím pravého tlačítka myši) do příslušné buňky "řídícího" sloupce.
P.

Událost listu:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Target.Column = 2 And Target.Row > 1 Then
Call Služobná_cesta(Target.Row)
Cancel = True
End If

End Sub

Makro v Modulu:
Sub Služobná_cesta(radek)

If InStr(Cells(radek, 1).Value, "služobná cesta - ") > 0 Then
Cells(radek, 1).Value = Replace(Cells(radek, 1), "služobná cesta - ", "")
Exit Sub
Else
Cells(radek, 1).Value = "služobná cesta - " & Cells(radek, 1).Value
End If

End Sub

Viz také příloha:
Příloha: zip41434_pridanie_vymaz_textu_makro_reseni.zip (14kB, staženo 39x)
citovat
#041435
avatar
Skúšam stiahnuť prílohu, ale akosi mi to nejde:-). Píše mi, že: Vámi požádovaná stránka nebyla nalezena.
Môžem poprosiť znovu o prílohu?
Ďakujemcitovat
#041436
avatar
Už sa mi to podarilo spustiť.
Ďakujem, idem sa s tým pohrať :-)citovat
icon #041440
eLCHa
1) Rada - Nepoužívejte v názvech procedur, proměnných atp diakritiku
2) Tyto věci řeším jedním tlačítkem a v proceduře odkazem na aktuální polohu kurzoru
3) Když už byste na tom trval, tak ano - toto lze udělat - všem tlačítkům přiřaďte 1 proceduruSub Sluzobna_cesta()
Dim rCell As Range
Set rCell = ActiveSheet.Cells(ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row, 1)
If InStr(rCell.Value, "služobná cesta - ") > 0 Then
rCell.Value = Replace(rCell.Value, "služobná cesta - ", "")
Else
rCell.Value = "služobná cesta - " & rCell.Value
End If
Set rCell = Nothing
End Sub
Pak už záleží pouze na správném umístění tlačítka.citovat
#041441
avatar
Super, ďakujem moc, večer vyskúšam, teraz musím makať rukami :-)citovat
#041444
avatar
Pre eLCHa:
Ďakujem. Presne tak som to potreboval.

Ďakujem aj Pavlusovi. Aj to riešenie je OK, len trošku náročnejšie na vysvetlenie pre iných používateľov.

Pekný večercitovat

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

Uspořádání dat do tabulky

elninoslov • 15.4. 14:19

QR kód

parkovec • 15.4. 13:53

Uspořádání dat do tabulky

lubo • 15.4. 12:10

Uspořádání dat do tabulky

Marw • 14.4. 19:41

Uspořádání dat do tabulky

elninoslov • 14.4. 10:08

Uspořádání dat do tabulky

Marw • 14.4. 9:30

hláška

elninoslov • 13.4. 8:45