Bună ziua;
Cum pot afla numele foii precedente (din stânga) dacă toate foile au fost redenumite și nu mai au numele lor originale Sheet1, Sheet2, ...
Mulțumesc.
Cum aflu numele foii precedente?
Re: Cum aflu numele foii precedente?
Buna ziua
Din cate stiu, odata redenumite, numele vechi ale foilor, asa cum le vede utilizatorul se pierd definitiv.
In teorie, daca vechile denumiri au fost doar Sheet1, 2, 3... acestea ar trebui sa fi ramas neschimbate daca va uitati in editorul macro (incercati scurtatura Alt+F11 pentru afisarea acestuia) si eventual le puteti modifica din nou in interfata in consecinta. De ex. poate aveti o foaie numita acum Facturi iar in editorul macro se va vedea Sheet2 in dreptul ei
IP
Din cate stiu, odata redenumite, numele vechi ale foilor, asa cum le vede utilizatorul se pierd definitiv.
In teorie, daca vechile denumiri au fost doar Sheet1, 2, 3... acestea ar trebui sa fi ramas neschimbate daca va uitati in editorul macro (incercati scurtatura Alt+F11 pentru afisarea acestuia) si eventual le puteti modifica din nou in interfata in consecinta. De ex. poate aveti o foaie numita acum Facturi iar in editorul macro se va vedea Sheet2 in dreptul ei
IP
Re: Cum aflu numele foii precedente?
Eu doar în VBA știu să obțin numele foii/paginii din stângaCum pot afla numele foii precedente (din stânga) dacă toate foile au fost redenumite și nu mai au numele lor originale Sheet1, Sheet2, ...
O foaie de calcul poate fi accesată prin:
- Numele de cod - e aproape fix, îl găsești în VBA
- Numele afișat în bara de foi - poate fi modificat de oricine dacă nu există protecție
- Index - reprezintă numărul de ordine în bara de foi. Se modifică ori de câte ori sunt rearanjate foile.
Pornind de la acesta, poți utiliza obiectul Workseet: cu proprietatea Index determini indexul paginii curente, iar dacă Index este mai mare decât 1, atunci cu proprietatea Name(index-1) afli numele foii din stânga foii curente.
Dacă ai nevoie de nume într-o formulă curentă, poți utiliza o funcție bazată pe același principiu, ca în exemplul de mai jos:
Cod: Selectaţi tot
Function NumeFoaieStanga(LinkCell As Range) As Variant
Dim Index As Long
Index = LinkCell.Parent.Index
If Index > 1 Then
NumeFoaieStanga = ThisWorkbook.Worksheets(Index - 1).Name
Else
NumeFoaieStanga = CVErr(xlErrNA)
End If
End Function
Cod: Selectaţi tot
Application.Volatile