Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Автоматическое присвоение имени создаваемого листа - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Автоматическое присвоение имени создаваемого листа
ddmax Дата: Вторник, 30.09.2014, 10:07 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Приветствую вас профи Excel!!! Помогите пожалуйста с решением задачи. Облазил весь интернет и данный сайт, но не нашел похожего обсуждения.
В определенном файле необходимо, чтобы при создании нового листа, его имя было не Лист1, Лист2 и т.д., а имя равное текущей дате и времени. И этот лист был копией одного уже созданного листа. Пробовал через макрос, со ссылкой на формулу ТДАТА, но не получилось, т.к. создается лист с именем уже созданного, что генерирует ошибку об одноименности листов. Заранее всех благодарю за ответы или хотя бы попытки :)
[moder]
можно макрос посмотреть?
часть, где происходит описанное[/moder]
К сообщению приложен файл: 1173537.xlsm (66.9 Kb)


Сообщение отредактировал ddmax - Вторник, 30.09.2014, 10:34
 
Ответить
СообщениеПриветствую вас профи Excel!!! Помогите пожалуйста с решением задачи. Облазил весь интернет и данный сайт, но не нашел похожего обсуждения.
В определенном файле необходимо, чтобы при создании нового листа, его имя было не Лист1, Лист2 и т.д., а имя равное текущей дате и времени. И этот лист был копией одного уже созданного листа. Пробовал через макрос, со ссылкой на формулу ТДАТА, но не получилось, т.к. создается лист с именем уже созданного, что генерирует ошибку об одноименности листов. Заранее всех благодарю за ответы или хотя бы попытки :)
[moder]
можно макрос посмотреть?
часть, где происходит описанное[/moder]

Автор - ddmax
Дата добавления - 30.09.2014 в 10:07
ddmax Дата: Вторник, 30.09.2014, 10:30 | Сообщение № 2
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добавил файл. Кнопка на вкладке "Заказ МБП"
К сообщению приложен файл: __1--.xlsm (66.9 Kb)
 
Ответить
СообщениеДобавил файл. Кнопка на вкладке "Заказ МБП"

Автор - ddmax
Дата добавления - 30.09.2014 в 10:30
Wasilich Дата: Вторник, 30.09.2014, 10:34 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Так наверное?
[vba]
Код
Sub www()
        Sheets.Add After:=Sheets(Sheets.Count)
        ActiveSheet.Name = Format(Now, "yyyy/mm/dd hh-mm")
End Sub
[/vba]Хотя не прав. Не дочитал. Там кажись нужна копия чего то.

[vba]
Код
Sub www()
     Sheets("Заказ МБП").Copy Before:=Sheets(1)
     ActiveSheet.Name = Format(Now, "yyyy/mm/dd hh-mm")
End Sub
[/vba]
Андрей как всегда впереди. :)


Сообщение отредактировал Wasilic - Вторник, 30.09.2014, 10:51
 
Ответить
СообщениеТак наверное?
[vba]
Код
Sub www()
        Sheets.Add After:=Sheets(Sheets.Count)
        ActiveSheet.Name = Format(Now, "yyyy/mm/dd hh-mm")
End Sub
[/vba]Хотя не прав. Не дочитал. Там кажись нужна копия чего то.

[vba]
Код
Sub www()
     Sheets("Заказ МБП").Copy Before:=Sheets(1)
     ActiveSheet.Name = Format(Now, "yyyy/mm/dd hh-mm")
End Sub
[/vba]
Андрей как всегда впереди. :)

Автор - Wasilich
Дата добавления - 30.09.2014 в 10:34
RAN Дата: Вторник, 30.09.2014, 10:39 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Sub Заявка()
     Sheets("Заказ МБП").Copy after:=Sheets(Sheets.Count)
     ActiveSheet.Name = Format(Now, "dd.mm.yy hh.nn")
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
Sub Заявка()
     Sheets("Заказ МБП").Copy after:=Sheets(Sheets.Count)
     ActiveSheet.Name = Format(Now, "dd.mm.yy hh.nn")
End Sub
[/vba]

Автор - RAN
Дата добавления - 30.09.2014 в 10:39
ddmax Дата: Вторник, 30.09.2014, 10:44 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Так наверное?

Думаю нет. Или я чего- то недопонимаю. Нужна кнопка, при нажатии которой, будет копироваться определенный лист и ему будет присваиваться имя = дата и время
 
Ответить
Сообщение
Так наверное?

Думаю нет. Или я чего- то недопонимаю. Нужна кнопка, при нажатии которой, будет копироваться определенный лист и ему будет присваиваться имя = дата и время

Автор - ddmax
Дата добавления - 30.09.2014 в 10:44
ddmax Дата: Вторник, 30.09.2014, 10:51 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
ОТЛИЧНО!!! Огромное спасибо!!! Все работает!!
 
Ответить
СообщениеОТЛИЧНО!!! Огромное спасибо!!! Все работает!!

Автор - ddmax
Дата добавления - 30.09.2014 в 10:51
Alex_ST Дата: Вторник, 30.09.2014, 13:09 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3219
Репутация: 622 ±
Замечаний: 0% ±

2003
Только всё-таки, наверное, лучше имя с секундами давать. А то за минуту можно на кнопочку и несколько раз нажать и вылететь по ошибке из-за не уникального имени листа.[vba]
Код
Sub Новый_Лист()
        Sheets("Заказ МБП").Copy after:=Sheets(Sheets.Count)
        ActiveSheet.Name = Format(Now, "yy-mm-dd hh.mm.ss")
End Sub
[/vba]



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Вторник, 30.09.2014, 13:13
 
Ответить
СообщениеТолько всё-таки, наверное, лучше имя с секундами давать. А то за минуту можно на кнопочку и несколько раз нажать и вылететь по ошибке из-за не уникального имени листа.[vba]
Код
Sub Новый_Лист()
        Sheets("Заказ МБП").Copy after:=Sheets(Sheets.Count)
        ActiveSheet.Name = Format(Now, "yy-mm-dd hh.mm.ss")
End Sub
[/vba]

Автор - Alex_ST
Дата добавления - 30.09.2014 в 13:09
ddmax Дата: Вторник, 30.09.2014, 14:24 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо огромное! Скажите, а возможно сделать так чтобы создаваемый лист был автоматически защищен от изменений?
 
Ответить
СообщениеСпасибо огромное! Скажите, а возможно сделать так чтобы создаваемый лист был автоматически защищен от изменений?

Автор - ddmax
Дата добавления - 30.09.2014 в 14:24
Wasilich Дата: Вторник, 30.09.2014, 16:15 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Можно и с паролем. Если дописать:
[vba]
Код
ActiveSheet.Protect Password:="12345" ' 12345 - пароль для примера
[/vba]
 
Ответить
СообщениеМожно и с паролем. Если дописать:
[vba]
Код
ActiveSheet.Protect Password:="12345" ' 12345 - пароль для примера
[/vba]

Автор - Wasilich
Дата добавления - 30.09.2014 в 16:15
ddmax Дата: Среда, 01.10.2014, 04:52 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Отлично! А можно так, чтобы ячейки хотя бы выбирать можно было? Менее суровая защита :)
 
Ответить
СообщениеОтлично! А можно так, чтобы ячейки хотя бы выбирать можно было? Менее суровая защита :)

Автор - ddmax
Дата добавления - 01.10.2014 в 04:52
ShAM Дата: Среда, 01.10.2014, 07:18 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
ddmax, Вы макрорекордером пользоваться умеете?
Если нет, Вкладка Вид - Макросы - Запись макроса - ОК.
Далее делаем те действия, которые Вы хотите записать.
Останавливаем запись макроса: Вид - Макросы - Остановить запись.
Идем в Стандартный модуль, смотрим, что получилось, убираем не нужное (например, связку Select, Selection. В подавляющем большинстве случаев не надо активировать/выделять ячейку, чтобы что-то с ней сделать).
 
Ответить
Сообщениеddmax, Вы макрорекордером пользоваться умеете?
Если нет, Вкладка Вид - Макросы - Запись макроса - ОК.
Далее делаем те действия, которые Вы хотите записать.
Останавливаем запись макроса: Вид - Макросы - Остановить запись.
Идем в Стандартный модуль, смотрим, что получилось, убираем не нужное (например, связку Select, Selection. В подавляющем большинстве случаев не надо активировать/выделять ячейку, чтобы что-то с ней сделать).

Автор - ShAM
Дата добавления - 01.10.2014 в 07:18
Alex_ST Дата: Среда, 01.10.2014, 09:49 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3219
Репутация: 622 ±
Замечаний: 0% ±

2003
К стати. Я тут, подумав на досуге немного, решил, что секунды в имя листа вписывать может быть не удобно. Слишком длинные цифровые имена могут оказаться плохо читабельны.
Подумал. Сделал.[vba]
Код
Sub NewSheet()
    Dim i%, sName$, sSuff$, sTest$
    sName = Format(Now, "yy-mm-dd hh.mm")
    On Error Resume Next
    Do
       sSuff = IIf(i, " (" & i & ")", "")
       Err.Clear: sTest = Sheets(sName & sSuff).[A1].Value
       i = i + 1
    Loop While Not CBool(Err)
    Application.EnableEvents = False
    Sheets("Заказ МБП").Copy After:=Sheets(Sheets.Count)
    ActiveSheet.Name = sName & sSuff
    Application.EnableEvents = True
End Sub
[/vba]Теперь новый создаваемый лист имя будет получать имя в виде даты и времени без секунд. А если в ту же минуту ещё раз выполнить макрос, то к имени будет приписан индекс в скобках (как при обычном копировании листа)



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеК стати. Я тут, подумав на досуге немного, решил, что секунды в имя листа вписывать может быть не удобно. Слишком длинные цифровые имена могут оказаться плохо читабельны.
Подумал. Сделал.[vba]
Код
Sub NewSheet()
    Dim i%, sName$, sSuff$, sTest$
    sName = Format(Now, "yy-mm-dd hh.mm")
    On Error Resume Next
    Do
       sSuff = IIf(i, " (" & i & ")", "")
       Err.Clear: sTest = Sheets(sName & sSuff).[A1].Value
       i = i + 1
    Loop While Not CBool(Err)
    Application.EnableEvents = False
    Sheets("Заказ МБП").Copy After:=Sheets(Sheets.Count)
    ActiveSheet.Name = sName & sSuff
    Application.EnableEvents = True
End Sub
[/vba]Теперь новый создаваемый лист имя будет получать имя в виде даты и времени без секунд. А если в ту же минуту ещё раз выполнить макрос, то к имени будет приписан индекс в скобках (как при обычном копировании листа)

Автор - Alex_ST
Дата добавления - 01.10.2014 в 09:49
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!