..|| Blog || Produkti/Storitve || MExcel || MDodatki || 300 nasvetov ||..

Ime lista - ActiveSheet.Name

Pomoč pri izdelavi makrov

Ime lista - ActiveSheet.Name

OdgovorNapisal/-a dragopre » Po avg 19, 2019 8:50 am

Pozdravljeni
Na prvem listu imam šifrant računov, ki ga lahko dopolnjuje uporabnik.
Drugi list je vzorec za liste računov. Poimenoval sem ga "Vzorec".
V VBA za vsak račun iz šifranta skopiram list "Vzorec" in ga poimenujem z imenom računa.
Na list Vzorec je vezana tudi koda, ki se s kopiranjem lista tudi kopira.
Da se koda izvede za izbrani list za ime lista uporabim "ActiveSheet.Name".
To deluje, razen pri "Worksheet_Deactivate" ( in pri "Worksheet_Change", če spremembo podatka potrdim s prehodom na nov list).
Razumljivo: Ko izberem drug list, se ime lista zamenja takoj, nato de izvede "Deactivate" za list, ki ga zapuščam, sledi dogodek "Activate" za nov list.

Vprašanje pa je: Ali lahko pri dogodku "Worksheet_Deactivate" dobim ime lista, pri katerem je koda napisana? ( podobno kot "ThisWorkbook.Name").
"ActiveSheet.Name" namreč vrne ime lista, ki je deaktivacijo povzročil.

ps.
Sedaj se rešujem tako, da pri vseh listih pri dogodku "Worksheet_Activate" v public spremenljivko zapišem ime aktivnega lista.

Hvala za vaš trud in lep pozdrav,
Drago
dragopre
 
Prispevkov: 75
Pridružen: To dec 11, 2012 11:46 pm



Matjazev.NET
 

Re: Ime lista - ActiveSheet.Name

OdgovorNapisal/-a admin » Po avg 19, 2019 9:16 am

Pozdravljeni,

Namesto da na vsak list tlačite kodo, jo zapišite na nivo delovnega zvezka. V tem primeru dobite parameter, ki predstavlja delovni zvezek, ki izgublja fokus:
Koda: Izberi vse
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
  Debug.Print "workbook: " & Sh.Name
End Sub
lp,
Matjaž Prtenjak
Administrator
admin
Site Admin
 
Prispevkov: 3542
Pridružen: Sr jul 20, 2005 10:06 pm


Vrni se na VBA

Kdo je prisoten

Po forumu brska: 0 registriranih uporabnikov in 1 gost

cron