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

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

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

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

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

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

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

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


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


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

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

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

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

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

Код, закрытый символами комментария, называется закомментированным :)
Но идея хорошая - "законспирировано от компилятора"
...
Рейтинг: 0 / 0
13.02.2010, 23:47
    #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
13.02.2010, 23:50
    #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
13.02.2010, 23:52
    #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
13.02.2010, 23:53
    #36468008
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение кода на текущий или прошедший месяц.
segailКод выполняется при дополнительном условии
If Cells(i, 27).Text = ComboBox1.Text Then
куда его присобачить


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

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

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

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

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

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

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

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


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