Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
Excel 2007 VBA Здравствуйте. При определение месяца в условии, выполняется код, начиная с точки отчета a1 (выполняется 12 кодов на каждый месяц), но если выбран февраль, то начиная с точки отчета, выполняются 11 месяцев (позиция 2) происходит сдвиг и а12 выполняется в пустую. Как сделать или создать условие, чтобы выполнялись те позиции которые выпадают на месяца. Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 09:24 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
segail, Как я понимаю, это образец, а что реально представляет из себя нужный код? Возможно проще доработать этот код так, чтобы он работал с параметром. В общем, обрисуйте задачу чуть подробнее, возможно удастся сделать проще, чем вы предполагаете... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 11:37 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, подождём ответа автора, хотел спросить почти в тему, имеем: а="сс" If ..... Then GoTo a ...... ...... ...... сс: 'насколько я знаю, такой конструкцией нельзя пользоваться, не скажете почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 11:51 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
Ципихович Эндрю 'насколько я знаю, такой конструкцией нельзя пользоваться, не скажете почему? А почему вместо "Ципихович" нельзя написать "Цепехович"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 11:58 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
segail, В принципе, если есть 12 абсолютно разных процедур, никак не похожих друг на друга можно поступить примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 12:07 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
Если очень хочется то можно, опять же с условием: f=..... w=.... If f=w Then "Цепехович"="Ципихович" А если серьёзно, то я понял, что ответа который мне будет понятен я не получу. Спросим по другому, Ваше мнение конструкция вида: а="сс" If ..... Then GoTo a ...... ...... ...... сс: Имеет право на существование? Может иметь практическое для программиста? Я считаю что да ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 12:10 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
А в этом столбике: Cat Dog Table Chair Water Book Tea Printer Cassete Lamp Glass Door Это для примера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 12:14 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
Думал на форуме нет не кого, временно отключался.. Вот код Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 12:15 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
segailВот код м-да, кривовато как-то... ну да чтоб голову вам не морочить - воспользуйтесь моим примером с Case ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 12:28 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Боле подробно чтобы Вы поняли. 12 строк кода на двенадцать месяцев. Если, например, по условию выпадает февраль, то первая строка выполняет код февраля, естественно остальные строки выпадают на месяца после февраля, значит 12-я строка выполняет пустое действие, в данном случае необходимо блокировать или запретить выполнение кода 12-ой строки, ну и так далее… ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 12:35 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
segailShocker.Pro, Боле подробно чтобы Вы поняли. 12 строк кода на двенадцать месяцев. Если, например, по условию выпадает февраль, то первая строка выполняет код февраля, естественно остальные строки выпадают на месяца после февраля, значит 12-я строка выполняет пустое действие, в данном случае необходимо блокировать или запретить выполнение кода 12-ой строки, ну и так далее… ну так я же привел код. Запускаете цикл от 2 до 12 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 12:38 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Лады попробую. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 12:41 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
Ципихович ЭндрюСпросим по другому, Ваше мнение конструкция вида: а="сс" If ..... Then GoTo a ...... ...... ...... сс: Имеет право на существование? Может иметь практическое для программиста? Я считаю что да Может иметь. В принципе, это можно в VB6... точнее, не совсем это, а вызов процедуры по указателю в виде переменной... но кажется этот способ недокументирован, кажется его когда-то давно приводил Antonariy... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 15:17 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
может Antonariy напомнит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 15:22 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
Shocker.ProsegailВот код м-да, кривовато как-то... Как я понимаю, у вас на листе есть что-то типа календаря, поэтому расстояние в ячейках между двумя месяцами неравномерно и зависит от количества дней. Если делать по уму - у вас должна быть универсальная функция, вычисляющая (или тупо знающая) по номеру месяца, где он расположен, то есть функция, которая возвращает координаты месяца на листе по его номеру. Тогда задача, которая требуется сейчас, решается легко и просто. Мало того, легко решается куча других сопутствующих задач (прошлых и будущих), потому что любой вашей процедуре будет все равно, где находится месяц, она получит его координаты из функции. Ну это по уму.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 15:24 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Умышленно сделано равномерно, чтобы не замарачиваться мне. У меня еще с условием проблема. Одна форма из двух всегда будет закрыта. Я поставил Or (или) но код глючит, из-за отсутствие одного из ComboBox. Это как то лечится? If Form_SelectDate.ComboBox_Month = CStr(.Cells(i, 27).Text) Or UserForm4.ComboBox1 = CStr(.Cells(i, 27).Text) Then ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 16:12 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
Shocker.ProЦипихович ЭндрюСпросим по другому, Ваше мнение конструкция вида: а="сс" If ..... Then GoTo a ...... ...... ...... сс: Имеет право на существование? Может иметь практическое для программиста? Я считаю что да Может иметь. В принципе, это можно в VB6... точнее, не совсем это, а вызов процедуры по указателю в виде переменной... но кажется этот способ недокументирован, кажется его когда-то давно приводил Antonariy...Не то чтобы не документирован, просто гемороен и нафиг не нужен в прикладных программах. Вызов процедуры "по указателю" можно реализовать с помощью классов CreateObject (progid - переменная) или с помощью CallByName (переменная — название метода). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 16:15 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
segailУмышленно сделано равномерно, чтобы не замарачиваться мне. не знаю. в цифрах 35, 72, 109, 146, 183, 220 я равномерности не нашел, иначе предложил бы другой алгоритм. segailУ меня еще с условием проблема. Одна форма из двух всегда будет закрыта. Я поставил Or (или) но код глючит, из-за отсутствие одного из ComboBox. Это как то лечится? If Form_SelectDate.ComboBox_Month = CStr(.Cells(i, 27).Text) Or UserForm4.ComboBox1 = CStr(.Cells(i, 27).Text) Then Этот код запустит обе формы, вне зависимости о того, что было закрыто. А вопрос я не очень понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 16:16 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, ну как нет количество промежуточных ячеек 37. Или Вы о другом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 16:19 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
Shocker.ProЭтот код запустит обе формы, вне зависимости о того, что было закрыто. А вопрос я не очень понял. Этот код не запускает форму. С одной из двух форм будет выполнен код вызванный (например кликом по кнопке) из модуля. Одна из форм всегда будет закрыта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 16:24 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
segailShocker.Pro, ну как нет количество промежуточных ячеек 37. Или Вы о другом? О, чёрт, видимо не туда посмотрел. "Признаю себя ослом и жду дальнейших распоряжений" (с) Тогда мне непонятна вообще вот эта конструкция: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Тогда все, что я советовал, нафиг не нужно. Просто сделать из этого цикл и все. Запускать цикл можно будет с любого по любой месяц по желанию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 16:24 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
segailЭтот код не запускает форму. Этот код запускает форму, если она не запущена. Если не верите, поставьте MsgBox в UserForm_Initialize и убедитесь в этом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 16:27 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Любой месяц выбирается на форме Form_SelectDate в ComboBox_Month затем клик по кнопке например так. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 16:33 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
пример ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 16:34 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
segailShocker.Pro, Любой месяц выбирается на форме Form_SelectDate в ComboBox_Month затем клик по кнопке например так. Код: plaintext 1. 2. Ну и в чем проблема? Если выбран апрель, то надо просто устроить цикл от 4 до 12. В цикле будет одна строчка: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 16:36 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Как его устроить та? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 16:39 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
segailShocker.Pro, Как его устроить та? Блин Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 16:41 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Что-то проясняется. Попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 16:46 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
segailShocker.Pro, Что-то проясняется. Попробую. Может сначала почитать учебник в разделе "циклы"? P.S. Зачем вы 450 раз очищаете почти одни и те же ячейки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 16:49 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Да я английский не шарю. Как одни и те же ячейки. Если идет очищение февраля, то должны очистятся все ячейки последующих месяцев, кроме января. Или я Вас опять не понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 16:55 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
AntonariyВызов процедуры "по указателю" можно реализовать с помощью классов CreateObject (progid - переменная) или с помощью CallByName (переменная — название метода). CreateObject - ты имеешь ввиду - создать собственный класс и потом создавать его экземпляр? Но я несколько другое имел ввиду - вроде получали адрес процедуры с помощью Address Of и потом вызывали с помощью какой-то недокументированной функции... Ну может это был и не ты... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 16:58 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
segailДа я английский не шарю. Учебников достаточно на русском segailКак одни и те же ячейки. Если идет очищение февраля, то должны очистятся все ячейки последующих месяцев, кроме января. Или я Вас опять не понял? Возьмем вот этот фрагмент внутри цикла: Код: plaintext при втором проходе "Z150:Z181" при третьем проходе "Z151:Z182" и так 450 раз То есть отдельно взятая ячейка (скажем, "Z181" будет очищена 31 раз) и так почти каждая (за исключением крайних). "Первое лезвие бреет чисто, второе еще чище.... 31-е полирует челюсть" (с) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 17:05 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Не понял, почему он столько раз очищается… ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 17:10 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
segailShocker.Pro, Не понял, почему он столько раз очищается… Это я не понял, поэтому и задал вам вопрос - "зачем?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 17:14 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Ну как я предполагал до этого, найденный диапазон очищается и на этом все… ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 17:16 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
segailShocker.Pro, Ну как я предполагал до этого, найденный диапазон очищается и на этом все… и где же команда, которая обеспечивает "на этом все"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 17:21 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
Shocker.Proи где же команда, которая обеспечивает "на этом все"? Чем дальше в лес, тем больше дров… Какую литературу можно почитать, как говорят, написано легко для понимания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 17:27 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
segailShocker.Proи где же команда, которая обеспечивает "на этом все"? Чем дальше в лес, тем больше дров… Какую литературу можно почитать, как говорят, написано легко для понимания. для понимания основ.... в общем-то любую Конкретных рекомендаций дать не могу, поищите в этой ветке по слову "литература" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 17:30 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
segail Чем дальше в лес, тем больше дров… Какую литературу можно почитать, как говорят, написано легко для понимания. Тут дело даже не в литературе, а в понимании того что вы хотите сделать. Вот пример: Ваша процедура: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Вот тот-же код но совсем немного подумав: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 20:48 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
Хотя главная проблема тут всё-же в этом адском цикле... Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 20:49 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
Gray_Wolf Найдите 10 отличий в результате... Я нашел. Вы забыли внутренний цикл (1-12). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 20:53 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
Упс, ошибся, конечно-же процедура будет выглядеть так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 20:54 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
Gray_WolfУпс, ошибся, конечно-же процедура будет выглядеть так: На самом деле, в переменной const нет абсолютно никакой необходимости. Либо For со Step 37, либо домножать j на 37 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 20:57 |
|
||
|
при сдвиге месяца, выполнить нужный код.
|
|||
|---|---|---|---|
|
#18+
Shocker.ProAntonariyВызов процедуры "по указателю" можно реализовать с помощью классов CreateObject (progid - переменная) или с помощью CallByName (переменная — название метода). CreateObject - ты имеешь ввиду - создать собственный класс и потом создавать его экземпляр? Но я несколько другое имел ввиду - вроде получали адрес процедуры с помощью Address Of и потом вызывали с помощью какой-то недокументированной функции... Ну может это был и не ты...Вполне документированной — CallWindowProc. Просто в VB смысла в этом нет. Какая разница, какой переменной описана функция, long-указателем или sting-названием? Только в сложности вызова. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2010, 23:29 |
|
||
|
|

start [/forum/topic.php?all=1&fid=60&tid=2159598]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
35ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 147ms |

| 0 / 0 |
