< návrat zpět

MS Excel


Téma: VBA přejmenování listu podle hodnoty buňky rss

Zaslal/a 5.1.2017 22:11

Dobrý den,
potřeboval bych pomoci s tímto kódem níže.
Tedy mám 10 listů a na 11 listě zadávám hodnoty do buněk, podle kterých by se měli jednotlivé listy přejmenovávat. Např. T6 - zadám ALFA, tak list číslo 2 se přejmenuje na ALFA. To stejné potřebuji "nakopírovat" aby to fungovalo úpně stejně např. u T8 - které přejmenuje list č.3
T10 - které přejmenuje list č.4, atd...

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$T$6" Then Exit Sub
Sheets(2).Name = Range("T6").Value
End Sub

Díky za pomoc!!

Pavel

Zaslat odpověď >

#034238
avatar
Ne že by se mi koncept líbil...

Private Sub Worksheet_Change(ByVal Target As Range)

Dim varPoradi
Dim strAdresa As String

'seznam adres
arrAdresy = Array("T6", "T8", "T10", "T12", "T14", "T16", "T18", "T20", _
"T22", "T24")

'adresa menene bunky
strAdresa = Target.Address(0, 0)

On Error Resume Next

'pokus o nalezeni poradi menene bunky v seznamu
varPoradi = Application.Match(strAdresa, arrAdresy, 0)

On Error GoTo 0

'jestlize adresa menene bunky byla nalezena v seznamu
If Not IsError(varPoradi) Then

'zmena nazvu listu
Worksheets(varPoradi).Name = Range(strAdresa).Text

End If

End Sub
citovat
#034257
avatar
Super, pomohlo děkuji, dalo by se to řešit i jinak?
Teď to funguje, jen si říkám, aby mi někdo neprohodil list z konce na začátek.

Díky!

Pavelcitovat
#034267
avatar
např:
'jestlize adresa menene bunky byla nalezena v seznamu
If Not IsError(varPoradi) Then
'Nastavit Kodova Jmena Listu
Dim arrListy
ReDim arrListy(1 To 3)
Set arrListy(1) = List1
Set arrListy(2) = List2
Set arrListy(3) = List3
'zmena nazvu listu
arrListy(varPoradi).Name = Range(strAdresa).Value
'uvolnit arrListy
Erase arrListy
End If

a nebo:
'jestlize adresa menene bunky byla nalezena v seznamu
If Not IsError(varPoradi) Then
'zmena nazvu listu
Choose(varPoradi, List1, List2, List3).Name = Range(strAdresa).Value
End If
citovat
#034268
avatar
A nie je jednoduchšie kliknúť na daný list pravým tlačítkom a premenovať ho priamo?
Vypisovať ho do bunky T6 a spúšťať makro je komfortnejšie?citovat
#034269
avatar

marjankaj napsal/a:

A nie je jednoduchšie kliknúť na daný list pravým tlačítkom a premenovať ho priamo?
Vypisovať ho do bunky T6 a spúšťať makro je komfortnejšie?


V podstatě se jedná pouze o vychytávku.
Díky.
Pavelcitovat
#034271
avatar

PaveSejnoha napsal/a:


V podstatě se jedná pouze o vychytávku.
Díky.
Pavel

No zrejme vo VBA nie si celkom doma, keďže nevieš ten tvoj jednoduchý kód upraviť.
Ale ak ti niekto prehádže poradie listov(prípadne nejaký vloží alebo vymaže), tak celý kód bude lotéria.
Netuším, čo chceš vychytávať.
Inak zabrániť premiestňovaniu hárkov môžeš:
posúdiť >zabezpečiť zošit > zaškrtni štruktúra.citovat
#034286
avatar

marjankaj napsal/a:

PaveSejnoha napsal/a:
V podstatě se jedná pouze o vychytávku.
Díky.
Pavel
No zrejme vo VBA nie si celkom doma, keďže nevieš ten tvoj jednoduchý kód upraviť.
Ale ak ti niekto prehádže poradie listov(prípadne nejaký vloží alebo vymaže), tak celý kód bude lotéria.
Netuším, čo chceš vychytávať.
Inak zabrániť premiestňovaniu hárkov môžeš:
posúdiť >zabezpečiť zošit > zaškrtni štruktúra.

Ano to máš pravdu, ve VBA moc doma nejsem. Vždy jen něco někde pochytím a to pak různě spojuji a propojuji........ učím se. Nějaké rady?citovat

Uživatelské menu

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

Menu

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje