Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2013, 15:40   #1
Peresvetihe
Новичок
Джуниор
 
Регистрация: 25.06.2013
Сообщений: 4
По умолчанию Создание листов из шаблона

Задача такая: создать 20 листов с шапками бланков.
Подвопрос: как создать шаблон Листа, а не книги в целом.
Peresvetihe вне форума Ответить с цитированием
Старый 25.06.2013, 15:56   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

создайте его в книге в виде листа.

и...
создать 20 листов в книге - это одна задача, а создать 20 книг с одним листом - другая.
по Вашим загадочным обьяснением не очень понятно, что надо Вам.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 26.06.2013, 00:48   #3
Peresvetihe
Новичок
Джуниор
 
Регистрация: 25.06.2013
Сообщений: 4
По умолчанию

мне надо создать 20 и более листов в книге.
первый лист надо оставить ( в нем все данные)
Код:
Sheets.Add After:=Sheets(1), Type:="C:\Users\Max\AppData\Roaming\Microsoft\Шаблон.xltm"
так не работает почему-то.

Последний раз редактировалось Peresvetihe; 26.06.2013 в 00:51.
Peresvetihe вне форума Ответить с цитированием
Старый 26.06.2013, 01:07   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Sub AddSameSheets()
  Dim n As Long
  n = Val(InputBox("Введите целое число", "Сколько копий листа 1 надо получить?", 20))
  For n = 1 To n: Sheets("Лист1").Copy After:=Sheets(Sheets.Count): Next
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 26.06.2013, 01:14   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

потом Вы на эти листы набьете данных, потом начнете думать как же с этого всего получить отчет, например, за опреленный период...по определенному артикулу или филиалу (не знаю что вы там собираетесь хранить).
вместо того, что все данные держать на одном листе и получать отчеты сразу задав фильтр практически любой сложности, с многоуровневыми комбинациями "И", "ИЛИ" и прочего.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 27.06.2013, 13:35   #6
Peresvetihe
Новичок
Джуниор
 
Регистрация: 25.06.2013
Сообщений: 4
По умолчанию

спасибо за совет. Худо бедно написал то, что хотел
вот:
Код:
Dim n As Long

For n = 1 To 3
  
  Sheets.Add After:=Sheets(n), Type:="C:\Users\Max\AppData\Roaming\Microsoft\TelemirMacros\template inspect.xltm" ' добавляет новый лист из шаблона после первого
  Sheets(n + 1).Name = "кв. " & Sheets(1).Cells(n + 7, 4).Text 'переименовали листы
 Next n

у меня проблема терь с этим куском
Код:
If Range("G4") = "ПРОСТО Класс 500 ускорение" Then Sheets(n + 1).Copy After:=Sheets(n + 1)
                                                   Sheets(n + 2).Name = "кв. " & Sheets(1).Cells(n + 7, 4).Text & "(тв)"
                                                   n = n + 1
    End If
ругается , что end if стоит без блока if.
тут задача такая, если в ячейке G4 написано "ПРОСТО Класс 500 ускорение", то нужно скопировать этот лист и в название листа добавить "(тв)"

Последний раз редактировалось Peresvetihe; 27.06.2013 в 13:49.
Peresvetihe вне форума Ответить с цитированием
Старый 27.06.2013, 13:53   #7
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

так
Код:
If Range("G4") = "ПРОСТО Класс 500 ускорение" Then
        Sheets(n + 1).Copy After:=Sheets(n + 1)
        Sheets(n + 2).Name = "кв. " & Sheets(1).Cells(n + 7, 4).Text & "(тв)"
        n = n + 1
End If
не ругается
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 27.06.2013, 14:17   #8
Peresvetihe
Новичок
Джуниор
 
Регистрация: 25.06.2013
Сообщений: 4
По умолчанию

спасибо! Всё получилось.
Может кому понадобиться.
Код:
Dim n As Long
Dim y As Long
y = 1
For n = 1 To 3
    
  Sheets.Add After:=Sheets(y), Type:="C:\Users\Max\путь к шаблону.xltm"
  Sheets(y + 1).Name = "кв. " & Sheets(1).Cells(n + 7, 4).Text 'переименовали листы
    Sheets(1).Cells(1, 1).Copy Destination:=Sheets(y + 1).Range("G2") 'перенесли ячеку а1 на листы
    Sheets(1).Cells(n + 7, 4).Copy Destination:=Sheets(y + 1).Range("H2") 'перенесли ячеку D8 на листы
    Sheets(y + 1).Range("G2") = Sheets(y + 1).Range("G2") & " кв. " & Sheets(y + 1).Range("H2") 'обьеденили две ячейки
    Sheets(y + 1).Range("H2").Clear
  If Range("G4") = "ПРОСТО Класс 500 ускорение" Then
                                    Sheets(y + 1).Copy After:=Sheets(y + 1)
                                    Sheets(y + 2).Name = Sheets(y + 1).Name & "(тв)"
                                    y = y + 1
  End If
y = y + 1
Next n

Последний раз редактировалось Peresvetihe; 27.06.2013 в 14:20.
Peresvetihe вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание шаблона SashaS Microsoft Office Excel 1 03.03.2012 12:14
Создание шаблона и работа с полями olegrock Microsoft Office Word 6 26.11.2011 22:08
Wordpress создание шаблона(темы)! Andersen1313 WordPress и другие CMS 3 18.09.2011 04:39
Создание Шаблона в dreamweaver Obey177 HTML и CSS 13 17.01.2011 01:06
Создание шаблона документа niziriska Общие вопросы .NET 1 30.04.2010 12:05