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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.09.2012, 07:37   #1
TimeStopper
Пользователь
 
Регистрация: 11.09.2012
Сообщений: 44
По умолчанию Как создать запрос, который будет размножать листы

Доброго времени суток...
Я просто строитель, а не программист ) но очень муторные действия меня уже убивают.
У меня есть шаблонная страница, мне надо, что бы Эксель спросил: сколько ярусов? я ответил - 24! сколько колонн? - 85!
Тогда он копирует 24 раза этот шаблонный лист, пронумеровывает их по порядку 1,2,3...24.
А потом в нутри каждого листа делает нумерует строки: для первого листа с 1 по 85, для 2го с 86 по 170, для третьего листа с 171 итд...
Это реально сделать ребят? )
TimeStopper вне форума Ответить с цитированием
Старый 11.09.2012, 08:55   #2
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Вполне реально. Но нужно Ваш пример.
Таблица-шаблон и что Вы хотите получить, хотя бы одну страницу-копию.
Приложите файлик.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 11.09.2012, 09:47   #3
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

Можно так. Код в модуль, запустить по F8 при активном шаблоне:
Код:
Sub Размножить()
'Dim List, Strok
'Dim SH As Worksheet
'Dim L, S, K
List = InputBox("Сколько ярусов?", "", 24)
Strok = InputBox("Сколько колонн?", "", 85)
For L = 1 To List
Sheets("Лист1").Copy After:=Sheets(L)
Set SH = ActiveSheet
SH.Name = L
        For S = 1 To Strok
            K = K + 1
            Cells(S, 1) = K
        Next S
Next L
End Sub
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 11.09.2012, 10:16   #4
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Код:
Sub CopyTemplate()
  Dim Tmp As Worksheet, Sh As Worksheet
  Do
    A = InputBox("Ââåäèòå êîëè÷åñòâî ëèñòîâ:", "Íàñòðîéêè", 1)
  Loop Until IsNumeric(A) Or A = ""
  Do
    B = InputBox("Ââåäèòå êîëè÷åñòâî ñòðîê:", "Íàñòðîéêè", 1)
  Loop Until IsNumeric(B) Or B = ""
  
  If CInt(A) > 0 And CInt(B) > 0 Then
    Set Tmp = Sheets("Ëèñò1")
    Set Sh = Tmp
    For I = 1 To A
      Tmp.Copy After:=Sh
      Set Sh = ActiveSheet
      Sh.Name = "Ïðîáà_" & I & "_" & Format(Now(), "hhmmss")
      Sh.[A3] = 1
      If B > 1 Then
        Sh.[A4] = 2
        If B > 2 Then
          Set R = Sh.Range("A3:A" & B + 2)
          Sh.[A3:A4].AutoFill R, xlFillSeries
        End If
      End If
    Next I
  End If
End Sub
Можно использовать что-то вроде этого. только доработать нужно...
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 11.09.2012, 10:33   #5
TimeStopper
Пользователь
 
Регистрация: 11.09.2012
Сообщений: 44
По умолчанию

Что-то я сразу не подумал...
Первый лист, это шаблон. Вротой лист, это уже скопированный первый, в котором продолжена нумерация...
Вложения
Тип файла: rar Усилия в колоннах.rar (15.2 Кб, 10 просмотров)
TimeStopper вне форума Ответить с цитированием
Старый 11.09.2012, 10:40   #6
TimeStopper
Пользователь
 
Регистрация: 11.09.2012
Сообщений: 44
По умолчанию

Что-то я сразу не подумал...
Первый лист, это шаблон. Вротой лист, это уже скопированный первый, в котором продолжена нумерация...

Алекс, почти работает! только не учитывает что в таблице есть шапка...он бы начинал с 3ей строки...
И еще у меня строки спаренные, вот это бы еще учитывать...если не сложно )
TimeStopper вне форума Ответить с цитированием
Старый 11.09.2012, 11:46   #7
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Предлагаю создавать новую книгу, а в шаблоне оставить одну строку. Жмите на кнопку.
Вложения
Тип файла: rar Усилия в колоннах1.rar (18.2 Кб, 14 просмотров)
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 11.09.2012, 11:59   #8
TimeStopper
Пользователь
 
Регистрация: 11.09.2012
Сообщений: 44
По умолчанию

а ни как нельзя в этой книге оставаться? ) просто там будут листы другого типа, с которыми налажена взаимосвязь...
TimeStopper вне форума Ответить с цитированием
Старый 11.09.2012, 12:18   #9
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Да, еще проще. Правда, при повторном запуске макроса возникает ошибка, т.к. лист с именем "1" уже есть. Подумайте, следует ли что-то еще делать в этой ситуации.
Вложения
Тип файла: rar Усилия в колоннах2.rar (21.2 Кб, 17 просмотров)
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 11.09.2012, 12:40   #10
TimeStopper
Пользователь
 
Регистрация: 11.09.2012
Сообщений: 44
По умолчанию

Большое спасибо, проверьте почту пожалуйста)
TimeStopper вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать столбец который не будет отображаться при сохранении в формате csv? m837 Microsoft Office Excel 1 24.05.2011 01:04
создать в блокноте веб документ, который будет содержать треугольник Igori_18 HTML и CSS 2 08.04.2011 21:16
Access. запрос который будет выводить самого старшего студента из разных курсов Alex1991 Помощь студентам 3 21.02.2009 14:04
создать типизированный файл который будет использоваться в Методе Гаусса vdv08 Помощь студентам 5 23.10.2008 15:17
скрипт который будет сам формировать запрос в Яндекс Antivoin HTML и CSS 1 18.08.2007 19:23