Přejmenování listu VBA Excel2016

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

PoPa
nováček
Příspěvky: 2
Registrován: září 17
Pohlaví: Muž

Přejmenování listu VBA Excel2016

Příspěvekod PoPa » 27 zář 2017 09:12

Zdravím,
prosím o pomoc. V kódu mám následující:
Sheets(AktivniList).Copy After:=Sheets(1)
Set ws = ActiveSheet
ws.Name = "Do práce"

Potřebuji kopii původního listu i s daty a přejmenovat. V Excelu 2013 není problém v Excelu 2016 to nezabírá. Má někdo nápad?
Děkuji



Reklama
Uživatelský avatar
atari
Level 4.5
Level 4.5
Příspěvky: 1673
Registrován: říjen 08
Pohlaví: Muž

Re: Přejmenování listu VBA Excel2016

Příspěvekod atari » 27 zář 2017 09:32

Chybí tam závorky a v názvu listu nesmíš nad písmeny používat českou interpukci. (Pochybuji, že ve 2013 to takto fungovalo.)

Kód: Vybrat vše

Sheets("AktivniList").Copy After:=Sheets(1)
Set ws = ActiveSheet
ws.Name = "Do prace"

PoPa
nováček
Příspěvky: 2
Registrován: září 17
Pohlaví: Muž

Re: Přejmenování listu VBA Excel2016

Příspěvekod PoPa » 27 zář 2017 09:43

Bohužel ani toto nepomohlo a v Excelu 2013 to pracuje tak jak jsem napsal až doposud. AktivniList není pojmenování listu, ale proměnná v které je "List1". Vyměnil jsem i za ActiveSheet.Name a stále nic. Kopii listu provede, ale nepřejmenuje ji.

Uživatelský avatar
atari
Level 4.5
Level 4.5
Příspěvky: 1673
Registrován: říjen 08
Pohlaví: Muž

Re: Přejmenování listu VBA Excel2016

Příspěvekod atari » 27 zář 2017 10:02

PoPa píše: AktivniList není pojmenování listu ...
Aktivní list je řeci název listu - Sheets("AktivniList") - to je přeci standardní označení listu podle názvu.

PoPa píše:... ale proměnná v které je "List1".
Jak může být list v porměnné? Tomu už vůbec nerozumím.

Uživatelský avatar
elninoslov
Level 1.5
Level 1.5
Příspěvky: 140
Registrován: červen 13
Pohlaví: Muž

Re: Přejmenování listu VBA Excel2016

Příspěvekod elninoslov » 27 zář 2017 10:27

Kód: Vybrat vše

Sub CopyWS()
Dim AktivniList As String, ws As Worksheet
  With ThisWorkbook
    AktivniList = "halušky"
    .Worksheets(AktivniList).Copy After:=.Worksheets(1)
    Set ws = .ActiveSheet
    ws.Name = "Do práce"
    Set ws = Nothing
  End With
End Sub

Ak nechcete ešte niečo iné robiť s novým listom, ani nepotrebujete premennú "ws", ale použite

Kód: Vybrat vše

Sub CopyWS()
Dim AktivniList As String
  With ThisWorkbook
    AktivniList = "halušky"
    .Worksheets(AktivniList).Copy After:=.Worksheets(1)
    .ActiveSheet.Name = "Do práce"
  End With
End Sub

Ak premenná "AktivniList" nadobúda rôzne hodnoty, tak je to mätúce, a radšej si ju premenujte napr. na "ListName", a bude označovať meno listu na kopírovanie, pretože kopírovaný list nemusí byť vždy aktívny.
Alebo ak máte nejaké kopírovacie tlačítko na každom liste, ktorého sa to týka, tak ani premennú AktivniList nepotrebujete, ale môžete použiť:

Kód: Vybrat vše

Sub CopyWS()
  With ThisWorkbook
    .ActiveSheet.Copy After:=.Worksheets(1)
    .ActiveSheet.Name = "Do práce"
  End With
End Sub


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • VBA Ukládání přílohy+přejmenování
    od tomd » 13 dub 2018 09:56 » v Kancelářské balíky
    1
    273
    od elninoslov
    13 dub 2018 11:06
  • excel vba - tisk jen nekterych listu
    od zutano » 12 dub 2018 19:16 » v Kancelářské balíky
    9
    778
    od Grimm
    29 dub 2018 13:34
  • Přejmenování složky v C:\Users
    od Con91 » 11 črc 2018 16:54 » v Windows 10, 8, 7, Vista, XP…
    4
    300
    od petr22
    12 črc 2018 14:20
  • Přejmenování souboru user32.dll
    od DaFy9 » 27 úno 2018 14:39 » v Vše ostatní (sw)
    2
    272
    od ITCrowd
    27 úno 2018 16:58
  • Hromadné přejmenování hudebních souborů
    od Marketcb » 02 led 2018 08:06 » v Vše ostatní (sw)
    4
    311
    od xbs
    02 led 2018 09:46

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: CommonCrawl [Bot] a 2 hosti