Страницы: 1
RSS
Выход из макроса если не выбрано значение LISTBOX
 
Добрый день.
Блин простейшая задача, но не могу найти ответ.
Случайно столкнулся с тем что:
Имеется визуальная форма с листбокс и одной кнопкой,
Код
Option Explicit
Public Mesec As Integer
Public Ploho As Integer


Private Sub CommandButton1_Click()

Mesec = ListBox1.ListIndex
Me.Hide

End Sub

Private Sub UserForm_initialize()
   'Массив визуальной формы, окна выбора пользователем
    UserForm1.ListBox1.List = Array("Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь")

End Sub
 

Вылезла форма при запуске, все хорошо, выбираешь работает, но если нажать на закрытие формы, по автомату выберется месяц январь listindex = 0 будет хотя я читал на excelworld что если не выбрано значение должна быть -1. Думал прописать условие если Listindex = -1 then exit sub но такое не получилось.

Необходимо чтобы если пользователь нажал на закрытие визуальной формы, работа макроса прекратилась полностью

 
Код
Private Sub CommandButton1_Click()
    Unload Me
End Sub
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Kentavrik7 написал:
Думал прописать условие если Listindex = -1 then exit sub но такое не получилось.
Странно воспроизвел, все работает. на каком событии воспроизводили, и вообще нужен файл пример, для наглядности.

Код
Private Sub CommandButton1_Click()
   If ListBox1.ListIndex = -1 Then Me.Hide Else MsgBox ListBox1.Value
End Sub

Private Sub UserForm_Initialize()
    Dim i&
    For i = 1 To 12
        ListBox1.AddItem Format(DateSerial(Year(Now), i, 1), "mmmm")
    Next
End Sub
Изменено: Nordheim - 20.06.2019 10:40:46
"Все гениальное просто, а все простое гениально!!!"
 
Вот файл пример, удалил из него модуль 2 (он содержал только массивы с данными которые к сожалению не могу показать)
 
А почему файл Word на форуме по Excel?
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Kentavrik7 написал: Необходимо чтобы если пользователь нажал на закрытие визуальной формы, работа макроса прекратилась полностью
Чем Вас не устроил код из моего сообщения (#2)?
Согласие есть продукт при полном непротивлении сторон
 
Sanja, Прописал Unload.me в command box если нажать на крестик и ничего не выбрать, все равно работа продолжается далее
 
Цитата
Kentavrik7 написал: Unload.me в command box
Это куда?
Я, честно говоря, не совсем понял что Вам нужно
Что бы по закрытию формы 'крестиком' происходило (или не происходило) ЧТО?
Согласие есть продукт при полном непротивлении сторон
 
Sanja, не происходила работа макроса, Я сейчас получается не выбрал ничего в форме,, закрыл, а макрос все равно фигачит с первым значением листбокса выполнять все процедура из модуля 1
Изменено: Kentavrik7 - 20.06.2019 11:48:47
 
В том примере, который Вы приложили, если открыть форму вручную из VBE и затем закрыть ее любым способом ничего не 'фигачит', а исполнить Ваш макрос 'открывашка' не представляется возможным из - за отсутствия многих процедур
Согласие есть продукт при полном непротивлении сторон
Страницы: 1
Наверх