powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Выполнение кода на текущий или прошедший месяц.
25 сообщений из 52, страница 1 из 3
Выполнение кода на текущий или прошедший месяц.
    #36467879
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.

Не могу доработать код с выбором текущего и прошедшего месяца в объекте ComboBox1

Необходимо чтобы код, который законспирирован в примере, выполнялся при выборе значения месяц в ComboBox1 только на текущий или прошедший месяц не зависимо от года.
Я пытался проделать это через объекты TextBox_мц и TextBox_mz (данные объекты не нужны, если можно обойтись без них, их можно удалить)
И как не затронуть значение “Итого” в раскрывающимся списке. Что бы это не повлияло на значение "Итого"
...
Рейтинг: 0 / 0
Выполнение кода на текущий или прошедший месяц.
    #36467887
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дополнение
Код должен выполняться на текущую прошедшую и на “Итого”
...
Рейтинг: 0 / 0
Выполнение кода на текущий или прошедший месяц.
    #36467933
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segail,

по мне так все написанное выше бессвязный набор мыслей.
...
Рейтинг: 0 / 0
Выполнение кода на текущий или прошедший месяц.
    #36467940
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все, что я смог понять: на сегодняшний момент месяцы с марта по декабрь не нужны. Ну так и не добавляйте их в комбобокс, в чем проблема?
...
Рейтинг: 0 / 0
Выполнение кода на текущий или прошедший месяц.
    #36467950
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Лады попробую объяснить

1. Откройте файл и посмотрите код, то что там законспирировано (извиняюсь если это правильное выражение)трогать не надо (это основной код который должен выполняться при главном условии в проекте а не в этом примере)
2. Описание действия: При выборе значения в объекте ComboBox1 (в объекте 12 месяцев прописью и одно значение “Итого”)должен выполнится код о котором было сказано в первом пункте.
3. Условие: Код, о котором было сказано в первом пункте, выполняется лишь в том случае, если пользователь при выполнении действия (выбор значения из раскрывающегося списка) выбрал из 12 м-ц текущий (то есть сегодня), или прошедший (то есть который уже прошел) месяц, год и дата не должны играть в данном условии ни какой роли. Если выбран будущий м-ц (который еще не наступил), то выходит сообщение (текст сообщения я напишу сам), код не выполняется. Также при выборе значения “Итого” код тоже выполняется.
4. Высылаю повторный пример с кодом, но без условия, о котором было сказано в пункте 3.

p/s
Мне не надо чтобы код выполнился в предложенном примере, мне надо создать условие, о котором было сказано выше, которое позволит выполнить данный код.
...
Рейтинг: 0 / 0
Выполнение кода на текущий или прошедший месяц.
    #36467951
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Выполнение кода на текущий или прошедший месяц.
    #36467956
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но погодите, в первом архиве у вас происходит все как вы описали - если я выбираю месяц с марта по декабрь, мне выдается ругательное сообщение, иначе не выдается. То есть вроде условие работает так, как вы хотите и описали. Я не могу понять, в чем заключается вопрос?
...
Рейтинг: 0 / 0
Выполнение кода на текущий или прошедший месяц.
    #36467962
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или вы просто не можете разобраться с синтаксисом оператора if ???
...
Рейтинг: 0 / 0
Выполнение кода на текущий или прошедший месяц.
    #36467964
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proно погодите, в первом архиве у вас происходит все как вы описали - если я выбираю месяц с марта по декабрь, мне выдается ругательное сообщение, иначе не выдается. То есть вроде условие работает так, как вы хотите и описали. Я не могу понять, в чем заключается вопрос?
Да сообщение выходит а после нажатие ОК код выполняется…
...
Рейтинг: 0 / 0
Выполнение кода на текущий или прошедший месяц.
    #36467965
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProИли вы просто не можете разобраться с синтаксисом оператора if ???
Наверно да...
...
Рейтинг: 0 / 0
Выполнение кода на текущий или прошедший месяц.
    #36467967
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
первый вариант
If условие Then оператор Else оператор: оператор: оператор
(в вашем случае можете дописать после MsgBox оператор End Sub

второй вариант
If условие Then
оператор
оператор
оператор
Else
оператор
оператор
оператор
End If

Но меня крайне удивляет, что человек, написавший уже сотню сообщений по теме не знает, как пишется If или хотя бы не может нажать F1 и посмотреть синтаксис If
...
Рейтинг: 0 / 0
Выполнение кода на текущий или прошедший месяц.
    #36467970
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
(в вашем случае можете дописать после MsgBox оператор End Sub


сорри, разумеется Exit Sub
...
Рейтинг: 0 / 0
Выполнение кода на текущий или прошедший месяц.
    #36467973
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,


Я запутался с условиями
...
Рейтинг: 0 / 0
Выполнение кода на текущий или прошедший месяц.
    #36467978
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чтобы не городить огород - условие может быть примерно таким:

Код: plaintext
1.
2.
3.
4.
If ComboBox1.ListIndex+ 1  > Month(Date) And ComboBox1.ListIndex<> 12  then 
  ругаться
Else
  выполнять нужный код
End If

Только вы не описали, как быть в январе, нужно ли разрешать декабрь. Ваш код этого тоже не учитывает.

И все-таки гораздо красивее не отсеивать неправильные варианты после выбора, а вообще не давать их выбрать, то бишь не грузить в комбобокс.
...
Рейтинг: 0 / 0
Выполнение кода на текущий или прошедший месяц.
    #36467982
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не, неправильно
вот так:

Код: plaintext
1.
2.
3.
4.
If ComboBox1.ListIndex+ 1  <= Month(Date) Or ComboBox1.ListIndex= 12  then 
  выполнять нужный код
Else
  ругаться
End If
...
Рейтинг: 0 / 0
Выполнение кода на текущий или прошедший месяц.
    #36467985
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segailто что там законспирировано (извиняюсь если это правильное выражение)

Код, закрытый символами комментария, называется закомментированным :)
Но идея хорошая - "законспирировано от компилятора"
...
Рейтинг: 0 / 0
Выполнение кода на текущий или прошедший месяц.
    #36468001
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProА чтобы не городить огород - условие может быть примерно таким:

Код: plaintext
1.
2.
3.
4.
If ComboBox1.ListIndex+ 1  > Month(Date) And ComboBox1.ListIndex<> 12  then 
  ругаться
Else
  выполнять нужный код
End If

Только вы не описали, как быть в январе, нужно ли разрешать декабрь. Ваш код этого тоже не учитывает.

И все-таки гораздо красивее не отсеивать неправильные варианты после выбора, а вообще не давать их выбрать, то бишь не грузить в комбобокс.
Код выполняется при дополнительном условии
If Cells(i, 27).Text = ComboBox1.Text Then
куда его присобачить

Не понял с декабрем. Если сейчас январь то декабрь будущий месяц, код не выполняется, сообщение ругается. Или я Вас не понял.
...
Рейтинг: 0 / 0
Выполнение кода на текущий или прошедший месяц.
    #36468003
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segail,
If ComboBox1.ListIndex+1 > Month(Date) And ComboBox1.ListIndex<>12 then
ругаться
Else
If Cells(i, 27).Text = ComboBox1.Text Then
выполнять нужный код
End If

так что ли
...
Рейтинг: 0 / 0
Выполнение кода на текущий или прошедший месяц.
    #36468005
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
f ComboBox1.ListIndex+ 1  > Month(Date) And ComboBox1.ListIndex<> 12  then 
ругаться
Else
If Cells(i,  27 ).Text = ComboBox1.Text Then
выполнять нужный код
End If
End If
наверно так
...
Рейтинг: 0 / 0
Выполнение кода на текущий или прошедший месяц.
    #36468008
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segailКод выполняется при дополнительном условии
If Cells(i, 27).Text = ComboBox1.Text Then
куда его присобачить


весь ваш закомментированный код ставится там, где я написал "выполнять нужный код"

segailНе понял с декабрем. Если сейчас январь то декабрь будущий месяц, код не выполняется, сообщение ругается. Или я Вас не понял.

Ну то есть в январе предыдущего периода просто нет. Ну тогда все ок.
...
Рейтинг: 0 / 0
Выполнение кода на текущий или прошедший месяц.
    #36468011
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segail
наверно так

Во-первых обратите внимание, я поправил условие, в первом сообщении оно было неверным
во-вторых, вы потеряли начало цикла, который идет ДО вашего условия Cells(i, 27)
...
Рейтинг: 0 / 0
Выполнение кода на текущий или прошедший месяц.
    #36468023
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Пока визуально попробовал, код работает
Путаюсь с условиями если будет три условия вообще запутаюсь
А как код срабатывает на значение “Итого” вообще не понял?
...
Рейтинг: 0 / 0
Выполнение кода на текущий или прошедший месяц.
    #36468029
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segailПутаюсь с условиями если будет три условия вообще запутаюсь

рисуйте алгоритмы на бумажке

segailА как код срабатывает на значение “Итого” вообще не понял?

Or ComboBox1.ListIndex=12
...
Рейтинг: 0 / 0
Выполнение кода на текущий или прошедший месяц.
    #36468042
segail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Ругайте как хотите, не подумал
Не зря Вы говорили за декабрь прошедшего года. Не дошло
Создал файл за 2009 по идеи должны открываться все месяца, но условие создано не на основание года.
Можно ли исправить?
У меня ячейка R1 Листа ”Отчет” туда через код вносится также текущий или прошедший год. От данной ячейки строится вся система кодов, которые выполняют условия связанных с датами текущими и прошедшими.
Нельзя ли изменить Ваше условие применив год ячейки R1 Листа”Отчет”
...
Рейтинг: 0 / 0
Выполнение кода на текущий или прошедший месяц.
    #36468046
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если я вас правильно понял, то

Код: plaintext
If ComboBox1.ListIndex+ 1  <= Month(Date) Or ComboBox1.ListIndex= 12  Or Range("R1")<Year(Date) Then 
...
Рейтинг: 0 / 0
25 сообщений из 52, страница 1 из 3
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Выполнение кода на текущий или прошедший месяц.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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