< návrat zpět

MS Excel


Téma: VBA: smazání více listů s proměnným nazvem rss

Zaslal/a 30.9.2023 11:01

FantasykZdravím,

Nevíte náhodou jak můžu smazat všechny listy začínající vždy na 0? Mám listy např. 01.09.2023, 02.09.2023..... a potřeboval bych vždy na konci měsíce tyto listy smazat.

Děkuji za jakékoliv nakopnutí.

Díky

Zaslat odpověď >

#055474
elninoslov
Sub Zmazat_listy_0()
Dim sL As String, Pocet As Integer, WS As Worksheet

With ThisWorkbook
For Each WS In .Worksheets
If Left(WS.Name, 1) = "0" Then
Pocet = Pocet + 1
sL = sL & IIf(sL = "", "", "•?") & WS.Name
End If
Next WS

If Pocet = 0 Then
MsgBox "Listy začínajúce ""0"" neexistujú.", vbInformation
Else
If Pocet = .Worksheets.Count Then
MsgBox "Nie je možné odstrániť všetky listy v zošite.", vbCritical
Else
Application.DisplayAlerts = False
.Worksheets(Split(sL, "•?")).Delete
Application.DisplayAlerts = True
End If
End If
End With
End Sub
Příloha: zip55474_zmazat-listy-0.zip (16kB, staženo 1x)
citovat
#055476
Fantasyk
To bylo velké nakopnutí...

Díky zítra vyzkouším, ale jak Vás znám tak to bude fungovat perfektně.

Ještě jednou díkycitovat
#055493
Fantasyk

Fantasyk napsal/a:

To bylo velké nakopnutí...

Díky zítra vyzkouším, ale jak Vás znám tak to bude fungovat perfektně.

Ještě jednou díky


Samozřejmě, že to fungovalo perfektně, ale já jsem trochu nemyslel.
Potřeboval bych všechny listy s 0, 1, 2 a 3
Nějak mi nedošlo, že měsíc ma více dnů než 9 3citovat
#055503
elninoslov
Stačí nahradiť kontrolnú podmienku
If Left(WS.Name, 1) = "0" Then
takouto kontrolou dvojčísla
If IsNumeric(Left(WS.Name, 2)) Then
alebo kontrolou dátumového názvu
If IsDate(Replace(WS.Name, ".", "/")) Then
A potom príslušne upraviť MsgBox, pretože hláška s 0 by nedávala zmysel.citovat
#055504
Fantasyk

elninoslov napsal/a:

Stačí nahradiť kontrolnú podmienku
If Left(WS.Name, 1) = "0" Then
takouto kontrolou dvojčísla
If IsNumeric(Left(WS.Name, 2)) Then
alebo kontrolou dátumového názvu
If IsDate(Replace(WS.Name, ".", "/")) Then
A potom príslušne upraviť MsgBox, pretože hláška s 0 by nedávala zmysel.

elninoslov napsal/a:

Stačí nahradiť kontrolnú podmienku
If Left(WS.Name, 1) = "0" Then
takouto kontrolou dvojčísla
If IsNumeric(Left(WS.Name, 2)) Then
alebo kontrolou dátumového názvu
If IsDate(Replace(WS.Name, ".", "/")) Then
A potom príslušne upraviť MsgBox, pretože hláška s 0 by nedávala zmysel.


Díky, díky a ještě jednou díky.citovat

Uživatelské menu

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

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

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

Aktivní diskuse