Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
6 / 6 / 1
Регистрация: 28.09.2013
Сообщений: 52

Как закрыть програмно созданую форму

28.09.2013, 14:34. Показов 2028. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте.
Извените за руский (писать неумею).
Помогите: создал форму в екселе, на нем два лайблы (label9 і label10), которые вызывают процедуру myKnopka_L9_L10(), она должна закрыть форму. Но выдает ошибку 424.
всьо в файле
Visual Basic
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
 Sub mmm()
    Dim MyFormKilkistiPorcij  As Object
    Set MyFormKilkistiPorcij = ThisWorkbook.VBProject.VBComponents.Add(3)
    With MyFormKilkistiPorcij
        .Properties("Caption") = "Кількість порцій"
        .Properties("Width") = 359
        .Properties("Height") = 273
        .Properties("DrawBuffer") = 1048576
    End With
    Dim NewFrame(1 To 3) As MsForms.Frame
    Set NewFrame(3) = MyFormKilkistiPorcij.Designer.Controls.Add("forms.frame.1", "Frame3", True)
    With NewFrame(3)
        .Caption = ""
        .Top = 218
        .Left = 1
        .Height = 34
        .Width = 354
    End With
    Dim NewLabel(1 To 10) As MsForms.Label
    
'--NewLabel(9)[Label9] i NewLabel(10)[Label10] малюють одну кнопку---------------------------------
    Set NewLabel(9) = MyFormKilkistiPorcij.Designer.Controls("Frame3") _
                                                    .Add("forms.Label.1", "Label9", True)
    With NewLabel(9)
        .Caption = ""
        .Left = 0
        .Top = 0
        .Height = 30
        .Width = 350
        .Font.Size = 8
        .TextAlign = fmTextAlignCenter
        .BorderStyle = fmBorderStyleNone
        .SpecialEffect = fmSpecialEffectRaised
    End With
    Set NewLabel(10) = MyFormKilkistiPorcij.Designer.Controls("Frame3") _
                                                    .Add("forms.Label.1", "Label10", True)
    With NewLabel(10)
        .Caption = "Підтвердити кількість порцій"
        .Width = 130
        .Left = (NewLabel(9).Width - NewLabel(10).Width) / 2
        .Height = 16
        .Top = ((NewLabel(9).Height - NewLabel(10).Height) / 2) + 2
        .Font.Size = 8
        .TextAlign = fmTextAlignCenter
        .BorderStyle = fmBorderStyleNone
    End With
'--------------------------------------------------------------------------------------------------
    
    
'--Код який пишеться для форми---------------------------------------------------------------------
    With MyFormKilkistiPorcij.CodeModule
        Line = .CountOfLines
        '--незакривати на хрестик--------------------------------------------------------------------------
        .InsertLines Line + 1, "Private sub userform_QueryClose(Cancel As Integer, CloseMode As Integer)"
        '.InsertLines Line + 2, "If CloseMode = vbFormControlMenu Then"
        '.InsertLines Line + 3, "If MsgBox(""Ви підтверджуєте кількість порцій?"", vbYesNo, """") = vbNo Then Cancel = True"
        '.InsertLines Line + 4, "End If"
        
        .InsertLines Line + 4, "Cancel = true"
        .InsertLines Line + 5, "End Sub"
        
        .InsertLines Line + 10, "Private Sub Label9_Click()"
        .InsertLines Line + 11, "Call myKnopka_L9_L10"
        .InsertLines Line + 12, "End Sub"
        
        .InsertLines Line + 13, "Private Sub Label10_Click()"
        .InsertLines Line + 14, "Call myKnopka_L9_L10"
        .InsertLines Line + 15, "End Sub"
        
        .InsertLines Line + 16, "Private Sub myKnopka_L9_L10()"
        '.InsertLines Line + 17, "MsgBox (""Нажата кнопка """"Підтвердити кількість порцій"""""")"
        
        '--вот здесь загвостка--------------------------
        '.InsertLines Line + 18, "cancel = false"
        .InsertLines Line + 18, "UserForm.hide" '??????????????????????
        
        '-----------------------------------------------
        
        .InsertLines Line + 20, "End Sub"
        
       
 
    End With
'--------------------------------------------------------------------------------------------------
    VBA.UserForms.Add(MyFormKilkistiPorcij.Name).Show
    ThisWorkbook.VBProject.VBComponents.Remove MyFormKilkistiPorcij ' удаляем форму
End Sub
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.09.2013, 14:34
Ответы с готовыми решениями:

Как автоматически закрыть форму?
Есть информационная форма (например, "Платежное поручение, версия 1")пользователя, которая появляется при старте книги excel ( Sub...

Как програмно закрыть calc.exe
Как програмно закрыть calc.exe

Как програмно закрыть книгу xsl?
Ребят, как мне програмно закрыть книгу xsl, которая была изменена и выдает сообщение об изменении файла .Т.е. чтобы оно не выдавала...

13
6 / 6 / 1
Регистрация: 28.09.2013
Сообщений: 52
28.09.2013, 14:51  [ТС]
ось сам файл
Вложения
Тип файла: zip Лист Microsoft Excel.zip (19.3 Кб, 4 просмотров)
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
28.09.2013, 15:46
Я уже умер. Листы вижу, код в общем модуле вижу, а форму не вижу... Без нее, за спиной, ...

Добавлено через 2 минуты
Sorry. Не был внимательный...
0
6 / 6 / 1
Регистрация: 28.09.2013
Сообщений: 52
28.09.2013, 15:48  [ТС]
Форма создайотся на автомате. закоментируй
Visual Basic
1
ThisWorkbook.VBProject.VBComponents.Remove MyFormKilkistiPorcij
и она неизчезнет
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
28.09.2013, 15:55
Ну я ж извинился...
0
6 / 6 / 1
Регистрация: 28.09.2013
Сообщений: 52
28.09.2013, 16:01  [ТС]
извинения приняти, хотя тут и обижатся незачто)) просто я необновил страницу))

Добавлено через 45 секунд
в етом коде штота реально зделать, или надо штота другое придумать??
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
28.09.2013, 16:06
Еще не пробовал. Но насторожило
.InsertLines Line + 18, "UserForm.hide"
Пробуйте изменить на .InsertLines Line + 18, "Me.hide"
1
6 / 6 / 1
Регистрация: 28.09.2013
Сообщений: 52
28.09.2013, 16:13  [ТС]
Заработало, заработало))., спасибо.
Вопрос: "Me" что ето такое, никогда с таким нестикался??
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
28.09.2013, 16:29
Me - oбращение к конкретному UserForm (кому пишется код), но только в коде самого UF (не листа!, и не общего модуля).
И ищите в сети. Запуск такого модуля нужно начинать програмным удалением существующих UF(UserForm1 <> userform2 !!!). И почему создаете програмным кодом? (!!!! Due to safety issues !!!!) Так сильно нужно?
0
6 / 6 / 1
Регистрация: 28.09.2013
Сообщений: 52
28.09.2013, 16:45  [ТС]
как бы обэснить. у меня эсть главная форма и вот ета што создается. в етой форме я вибераю количество порцый и передаю на главною. проблема в чьом заключалась.... ай долга обеснять запускайте во фтором файле main3. когда вибрать "страву"(комбо бокс) ы нажати кнопку, вспливает userform2, всьо хорошо, вибрали количество, подтвердили, форма закрилась, главная форма обновилась. выбераю в комба новую "страву", жму кнопку, виводытся форма з прежнымы даными( ето муляэт глаза), хотя малабы обновится. Вот поетому пробивал зделать програмним кодом, может так получется
Вложения
Тип файла: zip new_Sklad.zip (112.2 Кб, 4 просмотров)
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
28.09.2013, 18:25
Волосы дыбом. Там столько Форм!!! А зачем тогда Excel?
Вложения
Тип файла: rar new1r_Sklad.rar (118.8 Кб, 9 просмотров)
1
6 / 6 / 1
Регистрация: 28.09.2013
Сообщений: 52
28.09.2013, 21:35  [ТС]
форм много)) ето только начало.Я по суть должен создать "склад продуктов", штоб главний повар мог видеть, что есть на складе, мог пощитать среднюю цену, и напичатать мень на севодня. Раньше ето всьо делалось на "1С", но с нового года, подписка на "1С" истечьот. Поетому на придпреятие возник вопрос и мне дали решит ету проблему. Писалбы на ABAP-е в SAP R3 но недают доступа к коду. И админы закрыли доступ до всево на свете((

Добавлено через 10 минут
Прочитав лист. Дякую запораду. з формами я зв"язався якихось два дні назад. Якщо будуть якісь питання спитаюся)) Дякую.
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
28.09.2013, 22:49
Лист СКЛАД. Наименование, поставщик, наличие, цена единицы. Можно без формы. Лист ДВИЖЕНИЕ. Приход. Наименование, поставщик, кол-во, цена, место складирования, документ. Расход. Наименование, поставщик. кол-во, цена, куда/кому, документ. Можно без формы. Лист ВЫДАЧИ в работу (или как там у поваров). Наименование, поставщик, кол-во, цена. Тут можна форму. Возврат неиспользованого (на лист ВЫДАЧИ ). Списание по строкам, качеству, etc. (тоже лист ВЫДАЧИ). Связать все три листа. Лист-шаблон накладной. Выбрали для выдачи/возврата/перемещения - данные в накладную. Лист-шаблон акта на списание. Выбрали для списания (в той же форме, checkBox("спиcание")=true) - даные в шаблон акта. Форма привязана на СКЛАД. СКЛАД - привязан на ДВИЖЕНИЕ, ВЫДАЧА. Думаю, больше не надо. Где-то такая схема. Думаю, больше не надо. Но работы хватит. И так - одна форма и куча кода (зато его будет легко читать и коректировать). Я Вам не завидую, если Вы там один. Пусть кормят усиленно!

Добавлено через 18 минут
Я опять умер. Вот Вам программы склад http://www.prog.com.ua/list.php?g=sklad
Недорогие. А к ним, думаю, уже можно прикрутить все что еще нужно.

Добавлено через 6 минут
и еще... http://www.uchetoblako.ru/ua/ (там есть и бесплатные). Вижу - прог море, на любом языке.
0
6 / 6 / 1
Регистрация: 28.09.2013
Сообщений: 52
29.09.2013, 13:20  [ТС]
спасибо. обезательно посмотрю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.09.2013, 13:20
Помогаю со студенческими работами здесь

Закрыть 2 форму при этом не закрыть весь проект
Нужна помощь!!! как сделать так что бы в 1 форме выходила 2 а после,2 форма закрывалась при нажатии кнопки но не выходила с проекта...

Как закрыть форму?
Привет, вот немного освоил основы и перешел к forms , может кто подсказать как сделать так что бы после успешной операции...

Как закрыть форму
Добрый день,скажите пожалуйста. Как организовать закрытие формы по нажатию кнопки button1.? Есть Form1,Form2 открывается из Form1. ...

Как закрыть форму?
Создан проект, первой формой идет титульник, а второй собственно сама программа. Запускается титульник, далее, жмется кнопка ОК и...

Как закрыть форму?
Я создал форму на ней расположил кнопку,потом добавил еще одну форму и при нажатии на кнопку,я открываю вторую форму. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru