Профессиональные приемы работы в Microsoft Excel

Пожалуйста, войдите или зарегистрируйтесь.


Расширенный поиск  

Новости:

Теперь на форум можно залогиниться / зарегистрироваться с помощью ВКонтакте. Уже существующие пользователи могут связать свою учетную запись с аккаунтом ВКонтакте одним кликом в профиле пользователя http://forum.msexcel.ru/index.php?action=profile;area=account

Автор Тема: Автоматическое создание нового листа  (Прочитано 120 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Tosha Shufer

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 5

Знатоки подскажите, как можно сделать, что бы автоматически создавался новый лист по графику (к примеру в 6 утра, или наступлении новой даты) и при этом данные из столбца C переносились в столбец А.
Подробнее : Есть таблица(прилагается), где столбцы T U V остаток на утро, W X Y Z AA AB поступление в течении дня, AC AD AE итог на вечер. Нужно, что бы с утра был новый лист (наименованием даты создания) копия предыдущего с остатками вчерашнего дня в столбцах T U V, а столцы W X Y Z AA AB  обнулены. Можно так сделать?

Заранее спасибо
« Последнее редактирование: 21.06.2018, 13:43:07 от Tosha Shufer »
Записан

boa

  • Глобальный модератор
  • Постоялец
  • *****
  • Уважение: +27/-0
  • Оффлайн Оффлайн
  • Сообщений: 487
  • Доброта спасет мир...

приложите файл,плз
Записан
Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

Tosha Shufer

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 5

Приложил
Записан

boa

  • Глобальный модератор
  • Постоялец
  • *****
  • Уважение: +27/-0
  • Оффлайн Оффлайн
  • Сообщений: 487
  • Доброта спасет мир...

в модуль книги добавьте событие на открытие книги
Private Sub Workbook_Open()
Dim sh As Worksheet
Dim D As String
D = Format(Date, "DD.MM")
    For Each sh In Worksheets
        If sh.Name = D Then Exit Sub
    Next
    MsgBox "Сейчас будет добавлен новый лист """ & D & """", vbInformation  '   вывод сообщения можно закомментировать
    Sheets(Format(Date - 1, "DD.MM")).Copy After:=Sheets(Format(Date - 1, "DD.MM"))
    Set sh = Sheets(Sheets(Format(Date - 1, "DD.MM")).Index + 1)
    With sh
        .Name = D
        .Range("T5:V18").Value = .Range("AC5:AE18").Value
        .Range("W5:AB18").Value = 0
    End With
End Sub
Записан
Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

Tosha Shufer

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 5

Спасибо большое :))
Записан

Tosha Shufer

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 5

Хотел еще спросить, если к примеру пару дней таблицу не открывали. То возникнет ошибка как я понял?
Как правильно скорректировать, так что бы, либо создавались все листы за пропущенные даты, или создавался текущий сегодняшний лист, с пропуском дней когда таблица не открывалась, то есть после 20.06 шел 22.06, но данные переходили с 20 на 22
Записан

boa

  • Глобальный модератор
  • Постоялец
  • *****
  • Уважение: +27/-0
  • Оффлайн Оффлайн
  • Сообщений: 487
  • Доброта спасет мир...

Хотел еще спросить, если к примеру пару дней таблицу не открывали. То возникнет ошибка как я понял?

да
что бы ошибок не возникало и лист все равно создавался измените код
Private Sub Workbook_Open()
Dim sh As Worksheet
Dim D As String, D1$, i%
D = Format(Date, "DD.MM")
    For Each sh In Worksheets
        If sh.Name = D Then Exit Sub
    Next
    MsgBox "Сейчас будет добавлен новый лист """ & D & """", vbInformation  '   вывод сообщения можно закомментировать
    Do
        i = i + 1
        D1 = Format(Date - i, "DD.MM")
        For Each sh In Worksheets
            If sh.Name = D1 Then Exit Do
        Next
    Loop
    Sheets(D1).Copy After:=Sheets(D1)
    Set sh = Sheets(Sheets(D1).Index + 1)
    With sh
        .Name = D
        .Range("T5:V18").Value = .Range("AC5:AE18").Value
        .Range("W5:AB18").Value = 0
    End With
End Sub
Записан
Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

Tosha Shufer

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 5

Спасибо. ;)
Записан
 



Темы без ответов

22.05.2018 11:38 Скрипт написать который допишет данные в файл 286
03.03.2018 00:00 Подсчет отработанного времени, за исключением заранее определенных перерывов 667
14.02.2018 10:11 Подготовить читабельную отчетность по платежам 633
23.01.2018 13:46 Найти вероятность повторной покупки 634
12.01.2018 23:56 Сделать отчет на Power BI (Dashboard) 847
06.09.2017 10:43 Solver VBA не решает гиперболическое уравнение, но при этом решает гармоническое 898
17.08.2017 12:15 Гиперссылка и фильтр одновременно макрос 1139
23.05.2017 11:20 Копирование данных из одной таблицы в умную таблицу по условию 2627
15.03.2017 15:45 автозамена картинок PowerPoint 1629
11.03.2017 13:43 Изменить нумерацию страниц 1857





Яндекс цитирования msexcel.ru Яндекс.Метрика

Страница сгенерирована за 0.155 секунд. Запросов: 111.