
U prvního dotazu si nejsem jist co vlastně potřebujete aby to dělalo a u toho druhého nevím, k čemu by se to dalo použít. Procedury lze volat pomocí Call a proměná na ně snad ani není třeba.

1. asi jsem to blbě napsal. Potřebuji odkaz na aktuální sloupec pomocí písmena a ne pomocí čísla sloupce, aby jsem mohl použít v msgbox srozumitelnější hlašení pro uživatele.
2. při stisku tlačítka volám jinou proceduru, která mění barvu tlačítek a jako parametr chci použit název tlačitka
Sub tl_Nazev_Click()
mujFiltr 1, tl_Nazev
End Sub
Sub mujFiltr(strSloupec As Integer, Tlacitko As Object)
Tlacitko.BackColor = &H80000003
End Sub
je to jen příklad. Místo parametru tl_Nazev použit odkaz na název procedury tl_Nazev.

Ahoj,
první řádek = první dotaz
druhý řádek = snad pomůže s druhým dotazem, tady si nejsem jistej :-)
MsgBox Mid(ActiveCell.Address, 2, InStr(2, ActiveCell.Address, "$", vbTextCompare) - 2)
MsgBox Application.Caller
M@

Kocimu, pomocí range není nutné označovat celý sloupec, či oblast, lze použít třeba i jen pro jedinou buňku range("A3") - konkrétní buňka srozumitelně označena, aniž by člověk musel počítat sloupce :-) - ono využití se najde ;-)
M@

Díky za reakce. Chtěl jsem univerzální proceduru, abych nemusel ručně měnit parametry.
Pro info:
V excelu mám pomocí ovládacích prvků vytvořené příkazové tlačítko a bez problému mu měním barvu pomocí vba (viz kod výše tlačítko).

přiřadíš tomu tlačítku makro (to jde) do makra vložíš:
MsgBox Application.Caller
pak klikneš na tlačítko a v tu ránu víš jak se jmenuje a můžeš s ním pracovat.
M@

Pak už s tím pracovat lze např:
ActiveSheet.Shapes("Tlačítko 198").Left = 0
M@