Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2010, 20:08   #1
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию Выполнение кода на текущий или прошедший месяц.

Здравствуйте.

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

Необходимо чтобы код, который законспирирован в примере, выполнялся при выборе значения месяц в ComboBox1 только на текущий или прошедший месяц не зависимо от года.
Я пытался проделать это через объекты TextBox_мц и TextBox_mz (данные объекты не нужны, если можно обойтись без них, их можно удалить)
Вложения
Тип файла: rar mz.rar (9.0 Кб, 14 просмотров)

Последний раз редактировалось segail; 13.02.2010 в 20:12.
segail вне форума Ответить с цитированием
Старый 13.02.2010, 20:36   #2
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

как то так
Вложения
Тип файла: rar mz.rar (12.8 Кб, 23 просмотров)
Dophin вне форума Ответить с цитированием
Старый 13.02.2010, 21:12   #3
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

В примере код работает, но стоит его перенести в основной проект, выходит ошибка “Несовпадение типов"
И как не затронуть значение “Итого” в раскрывающимся списке. При выборе данного значения тоже выходит ошибка, так как данное условие
Код:
If Month(CDate(1 & "." & ComboBox1.Value)) > Month(Date) Then
не рассчитано на значение “Итого”
segail вне форума Ответить с цитированием
Старый 13.02.2010, 21:50   #4
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

а должно быть?

перечитайте свой первый вопрос

формулируйте четче что есть и что надо. Дорабатывать куски чужого кода, обычно затягивает в болото "вот это ваше добавили, а то что у меня раньше работало, работать перестало, вот какой Вы негодяй".
Dophin вне форума Ответить с цитированием
Старый 13.02.2010, 22:01   #5
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Да нет, файл все равно черновой.

Проще говоря код который законспирирован должен выполнятся на прошедшей текущий м-ц и на значении “Итого” при выполнения действия Private Sub ComboBox1_Change()
segail вне форума Ответить с цитированием
Старый 13.02.2010, 22:08   #6
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

Вы меня конечно извините, но я вообще ничего не понял. Вопроса не увидел. кусок фразы: "на прошедший текущий месяц" - заставил задуматься.

Попробуйте переформулировать вопрос. Представьте что общаетесь с детьми младшего школьного возраста:
"Есть вот это
при добавлении того туда должно сделаться так
а при выборе этого - вот так"
Dophin вне форума Ответить с цитированием
Старый 13.02.2010, 22:52   #7
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Лады попробую…

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

p/s
Мне не надо чтобы код выполнился в предложенном примере, мне надо создать условие, о котором было сказано выше, которое позволит выполнить данный код.
Вложения
Тип файла: rar mz2.rar (9.3 Кб, 12 просмотров)
segail вне форума Ответить с цитированием
Старый 13.02.2010, 23:56   #8
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте segail.
"создать условие", точнее построить, можно подобным изменением Вашего кода:
Код:
Private Sub ComboBox1_Change()
Const sM1 = "Выбранный месяц опережает текущее событие"
Const sM2 = " Информационное сообщение"
Dim i%
i = ComboBox1.ListIndex
Select Case i
Case 12 'Итого
Case Else
    If Month(Date) < i + 1 Then MsgBox sM1, vbInformation, sM2: Exit Sub
End Select
[P1] = ComboBox1.Text 'Ввод текста в ячейку (месяц)
'...
'исплняемый код
End Sub

Private Sub UserForm_Initialize()
Dim i%
For i = 1 To 12
    ComboBox1.AddItem LCase(Format("1/" & i & "/1", "MMMM"))
Next
ComboBox1.AddItem "Итого"
End Sub
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 14.02.2010, 00:35   #9
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Попробую…
Благодарю.
segail вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выполнение кода при открытии любой книги Обыватель Microsoft Office Excel 0 05.02.2010 15:23
Можно ли ускорить выполнение этого кода? Velross Помощь студентам 3 07.01.2010 19:37
Выполнение строки как кода в Delphi Asteroid Общие вопросы Delphi 11 21.09.2009 18:46
.htaccess запрет на выполнение кода wall66 PHP 3 11.08.2009 10:54
Выполнение кода из файла.. NSvirus Паскаль, Turbo Pascal, PascalABC.NET 25 14.06.2009 00:56