powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / создание однотипных страниц
10 сообщений из 10, страница 1 из 1
создание однотипных страниц
    #35430036
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ, всем доброго времени суток. Я прямо сказать недавно столкнулся с макросами, поэтому не смейтесь сильно ... много чего не получается, а делать нуна :)
мне нужно создать в новой книге 12 новых страниц (типа как 12 месяцев - янв,февр...декабрь) и на каждой страничке чтобы была шапка
ожидаемое выполнение за ______(месяц) 200Хгода
№ |Объект, договор | Стоимость | Собств\силы| С\п

вот что получилось, я сначала решил очистить книгу от лишних листов и опять столкнулся с проблемой что все листы она не позволяет удалять ... вот так

+ хотел навести форматирование на все ячейки (центр - центр)
вот что получилось

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
Sub proc_delete_P()
Dim aSheet As Object
For Each aSheet In ActiveWorkbook.Sheets
If Sheets.Item <> "Лист1" Then Sheets.delete
Exit For
End If
End Sub


Sub shablon_create()
ActiveWorkbook.Worksheets.Add

Dim a As String
a = CStr(Year(Date))
 Range("A1") = "Ожидаемое выполнение за " & a & "год"
    Application.DisplayAlerts = False
    Range("A1:E1").Select
    Selection.Merge
    Application.DisplayAlerts = True
   Range("A2") = "№"
   Range("B2") = "Объект, договор "
   Range("C2") = "Стоимость этапа"
   Range("D2") = "С/С"
   Range("E2") = "С/П "

   
End Sub
Sub s()
  Dim n As Long
  For n =  1  To ThisWorkbook.Worksheets.Count
    If ThisWorkbook.Worksheets(n).Name <> "Лист1" Then
      Worksheets.delete
    End If
  Next n
End Sub

Sub centered_()
Cells( 1 ,  1 ).Select
With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
End With

End Sub

Sub Page_Add()
Dim i As Integer
If Worksheets.Count >=  12  Then
Exit Sub
Else
For i =  1  To  12 
ActiveWorkbook.Worksheets.Add
Next i
Worksheets( 1 ).Name = "Январь"
Worksheets( 2 ).Name = "Февраль"
Worksheets( 3 ).Name = "Март"
Worksheets( 4 ).Name = "Апрель"
Worksheets( 5 ).Name = "Май"
Worksheets( 6 ).Name = "Июнь"
Worksheets( 7 ).Name = "Июль"
Worksheets( 8 ).Name = "Август"
Worksheets( 9 ).Name = "Сентябрь"
Worksheets( 10 ).Name = "Октябрь"
Worksheets( 11 ).Name = "Ноябрь"
Worksheets( 12 ).Name = "Декабрь"
End If

End Sub
...
Рейтинг: 0 / 0
создание однотипных страниц
    #35430242
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторопять столкнулся с проблемой что все листы она не позволяет удалять ... вот так
Это не проблема, а свойство рабочей книги экселя.
И какие у вас проблемы с полученным кодом ?
...
Рейтинг: 0 / 0
создание однотипных страниц
    #35430270
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну хорошо, прошу прощения за формулировку, ну так все таки как сделать так чтобы у меня все таки после выполнения макроса было просто 12 листов с названиями месяцев.
а с кодом проблема такая что например при удалении - у него есть предел какой то, при котором он выдает ошибку (редупреждение ) out of range вот

я пробовал автоматически макрос записывать, но там код слишком массивный получается и без циклов (естесственно) :(
...
Рейтинг: 0 / 0
создание однотипных страниц
    #35430342
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот что получилось
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
Public Sub CreateCalendarBook()
Dim wbNew As Workbook
Dim wsNew As Worksheet
Dim arMonth() As Variant
Dim i As Long
    
    Application.SheetsInNewWorkbook =  1 
    Application.ScreenUpdating = False
    
    arMonth = Application.GetCustomListContents( 4 )
    
    Set wbNew = Application.Workbooks.Add
    wbNew.Sheets( 1 ).Name = "MustRemoved"
    
    For i = LBound(arMonth,  1 ) To UBound(arMonth,  1 )

        ThisWorkbook.Activate
        Sheets("Шаблон").Copy Before:=wbNew.Sheets(wbNew.Sheets.Count)
        wbNew.Activate
        Set wsNew = ActiveSheet
        wsNew.Name = arMonth(i)
         wsNew.Range("A1").Value = "Ожидамое выполнение за " & LCase(arMonth(i)) & " " & Year(Now) & " года"  
   Next i
    Application.DisplayAlerts = False
    wbNew.Worksheets("MustRemoved").Delete
    
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    ThisWorkbook.Activate
  MsgBox "Создание книги завершено", vbOKOnly + vbInformation, "Сообщение"
End Sub
создание_шаблона.xls
...
Рейтинг: 0 / 0
создание однотипных страниц
    #35430631
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
эмс, может конечно я не прав опять, но этот макрос (который вы написали) он создает новую книгу в ней создает один лист, потом вываливается с ошибкой
"Run-time error '9'
Subscript out of range

эту ошибку не первый раз вижу ... и не совсем понимаю из какого диапазона значение выходит и значение чего ...

я пытался потом сделать чтобы на каждом листе месяца отображалась эта табличка ... вроде правильно, но отображается только попрежнему на одном листе ... вот так :(( может вы сразу увидите ошибку, она скорее всего на поверхности .. :(

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Sub shablon_create()

Dim a As String
Dim b As String
Dim i As Integer
For i =  1  To ActiveWorkbook.Sheets(i).Count
a = CStr(Year(Date))
b = ActiveWorkbook.Sheets.Item
 Range("A1") = "Ожидаемое выполнение за" & b & "месяц" & a & "год"
    Application.DisplayAlerts = False
    Range("A1:E1").Select
    Selection.Merge
    Application.DisplayAlerts = True
   Range("A2") = "№"
   Range("B2") = "Объект, договор "
   Range("C2") = "Стоимость этапа"
   Range("D2") = "С/С"
   Range("E2") = "С/П "
Next i
End Sub

хотя вот щас опять перечитываю что написал ... вроде нужно делать каждый лист на котором работаешь - активным, и только потом на него делать какие то записи ... может вы поможете?
...
Рейтинг: 0 / 0
создание однотипных страниц
    #35430730
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Макрос надо запускать не на ровном месте, а их той книги, которую я приложил к своему сообщению.
...
Рейтинг: 0 / 0
создание однотипных страниц
    #35430788
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я увидел, что вы приложили файл на сервере, но почему то по истечении той самой минуты никакой ссылки, чтобы скачать файл не появляется ... пробовал раз 5 - результата = 0
я уже беспокоюсь, что я совсем балбес :((
посмотрите, пожалуйста, может Вы недозалили файл?
...
Рейтинг: 0 / 0
создание однотипных страниц
    #35430921
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Nomad87
> я увидел, что вы приложили файл на сервере, но почему то по истечении
> той самой минуты никакой ссылки, чтобы скачать файл не появляется ...
> пробовал раз 5 - результата = 0
> я уже беспокоюсь, что я совсем балбес :((

Самокритика это полезно ;)

> посмотрите, пожалуйста, может Вы недозалили файл?

Только что скачал файл, все нормально

--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
создание однотипных страниц
    #35430966
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
щас вот сидел, попробовал переделать ваш макрос, чтобы он просто содавал рабочую книгу и в ней 12 страничек, вот что получилось :) хотя оно не оч работает :(

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
Public Sub CreateCalendarBook()
Dim wbNew As Workbook
Dim wsNew As Worksheet
Dim arMonth() As Variant
Dim i As Long
    
    Application.SheetsInNewWorkbook =  1 
    Application.ScreenUpdating = False
    
    arMonth = Application.GetCustomListContents( 4 )
    
    Set wbNew = Application.Workbooks.Add
    wbNew.Sheets( 1 ).Name = "MustRemoved"
    
    For i = LBound(arMonth,  1 ) To UBound(arMonth,  1 )   ' это я так полагаю организовывает цикл по месяцам

        ThisWorkbook.Activate
        If ActiveWorkbook.Sheets.Count <  14  Then
           Sheets(i).Add
           Sheets(i).Select
           Sheets(i).Name = LCase(arMonth(i))
         WorkSheets(i).Range("A1").Value = "Ожидаемое выполнение за  " & LCase(arMonth(i)) & " " & Year(Now) & " года"
         End If
   Next i
    Application.DisplayAlerts = False
    wbNew.Worksheets("MustRemoved").delete
    
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    ThisWorkbook.Activate
  MsgBox "Создание книги завершено", vbOKOnly + vbInformation, "Сообщение"
End Sub

с уважением, Сергей.
...
Рейтинг: 0 / 0
создание однотипных страниц
    #35431066
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня еле еле получилось скачать ентот файл блин :)
просто я оперу юзаю, а она не хотела его скачивать и все)
щас попробовал эксплорером - все получилось, и макрос отлично работает ура ура ))

буду дальше думать над программой) пасиб огромное за внимание
с уважением, Сергей.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / создание однотипных страниц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]