Страницы: 1
RSS
Массовая замена наименований листов в зависимости от месяца
 
Здраввствуйте.

В общем имеется сводка, её каждый месяц пересоздают на новую т.к. меняется месяц и заполняют заново
Проблема в том что приходится все 30-31 лист (или 28 - февраль) менять рукой дату в имени каждого листа.
Смог автоматизировать процесс тем что написал макрос (ну как написал - что-то сам, что-то с инета) в VBA я довольно слаб, и теперь макрос работает так - пока рукой не напишешь и Enter не нажмёшь, название листа в зависимости от имени ячейки на листе "Настройка листов" не меняется, то есть если написать первый день месяца и протянуть 30 дней вниз, то пока последний месяц рукой не напишешь и Enter не нажмёшь то процедура не сработает, почему так? Я не знаю, видимо проблема в Change или я чего-то не догоняю, прошу помочь сделать так чтобы при протяжке имена сразу менялись, или уже думал на кнопку сделать макрос, чтобы поменял имена в таблице дат и нажал кнопку и листы сменились...
 
Что нужно то вопроса нет? создать листы на каждый день месяца? а что делать с остальными? куда задается нужный месяц?
Цитата
и Enter не нажмёшь то процедура не сработает, почему так?
потому что так отслеживается изменение ячейки
Не бойтесь совершенства. Вам его не достичь.
 
Да, извиняюсь, вопрос такой - как переделать макрос так, чтобы он срабатывал на кнопку, листы создавать не надо, я их сам удалил т.к. размер файла 100кб только позволяла система загрузить.
 
Артур Эдуардович, Тема: Переименовать листы книги согласно заданному списку
Код
Sub ggg()
Dim i As Integer, iLastRow As Integer, n As Long
iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
n = 2
    For i = 1 To iLastRow
    If n <= Sheets.Count Then
        Sheets(n).Name = Cells(i, 1): n = n + 1
    Else
        Exit Sub
    End If
    Next
End Sub
Изменено: Mershik - 18.05.2021 20:59:40
Не бойтесь совершенства. Вам его не достичь.
 
Код
For Each Sheet In Sheets
    If Sheet.Index > 1 Then
        If Sheets(1).Cells(Sheet.Index - 1, 1) <> "" Then _
            sheetSheet.Name = Sheets(1).Cells(Sheet.Index - 1, 1)
    End If
Next


и  там и там нет контроля на уникальность.
Изменено: БМВ - 19.05.2021 06:54:00
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх