|
|
|
ПО
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток, уважаемые программисты! Ситуация следующая: Есть ПО (ну не ПО, конечно, а макрос в excel? но здоровый) по оценке заёмщиков. В нём несколько листов (вроде, 9), на разных листах - разные таблички. На листах №1 и №2 - экономист вбивает данные балансов оцениваемого предприятия. (на листе №1 - форма1, на №2 - форма№2) Дело вот в чём: Вбиваются даты балансов (далее - ББ), в зависимости от их кол-ва, прога ведёт себя по-разному. Например, если ББ есть только один, то видимых листов только 5. А если кол. ББ > 2, то Visible становятся такие листы, как "анализ динамики" и т.д. Вот кусок кода, отображающий и скрывающий листы: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. И всё бы отлично было, да мне начинают слать проги, где вбиты данные, и уже на листе база1 B56 = 1, а чёртовы листы не открваются. В B56 следующая формула =СУММ(B55:I55). Подскажите почему слетает: лист-то откалькулировался (0 на 1 поменялась, а не арботает)? К чему привязать скрытие/отображение листов, если не к worksheet_calculate()? Огромнейшее спасибо заранее!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2008, 09:42 |
|
||
|
ПО
|
|||
|---|---|---|---|
|
#18+
> Автор: PlanB > Доброго времени суток, уважаемые программисты! > Ситуация следующая: > Подскажите почему слетает: лист-то откалькулировался (0 на 1 поменялась, а не > арботает)? Может отключен автоматический пересчет листа? -- С уважением Горбонос Игорь Леонидович Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2008, 11:58 |
|
||
|
ПО
|
|||
|---|---|---|---|
|
#18+
так я посмотрел, там стоит "1" уже, а листы закрыты. Я, притом, понятия не имею, как они этого добились. Скорее всего, они не вбивают, а копируют ctrl+с/v , но лично у меня всё работает. Отписал в мыло подробности и киданул то, что они мне прислали. Будет время, зацени плз) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2008, 12:14 |
|
||
|
ПО
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2008, 12:57 |
|
||
|
ПО
|
|||
|---|---|---|---|
|
#18+
AndreTMSheets("Анализ динамики").Unprotect If ActiveSheet.Range("b56").Value = 0 Then Sheets("Анализ динамики").Visible = False Sheets("Ограничения").Rows(17).Hidden = True Вы имеете ввиду уточнить адрес диапазона...? Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2008, 13:14 |
|
||
|
ПО
|
|||
|---|---|---|---|
|
#18+
Как я понимаю, некой процедуры, постоянно следящей за значением в ячейке нет, либо она много будет памяти жрать. По моему мнению, worksheet_calculate() - не самая лучшая идея, но я др. выхода не вижу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2008, 13:27 |
|
||
|
ПО
|
|||
|---|---|---|---|
|
#18+
AndreTMIf ActiveSheet.Range("b56").Value = 0 ThenЭтот код - на листе "база1", который и калькулируется. Не думал, что слетит. Точнее, там всё и работает. А вот тест, при котором такое не работает, я не смог придумать((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2008, 13:37 |
|
||
|
ПО
|
|||
|---|---|---|---|
|
#18+
Я бы поостерегся писать в событии worksheet_calculate ScreenUpdating, Unprotect,Protect, Visible, Hidden. Это событие может очень часто вызываться. И что напрягает у вас в коде, так это: worksheet_calculate, а должно быть Worksheet_Calculate Успехов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2008, 17:04 |
|
||
|
ПО
|
|||
|---|---|---|---|
|
#18+
VladConnЯ бы поостерегся писать в событии worksheet_calculate ScreenUpdating, Unprotect,Protect, Visible, Hidden. Это событие может очень часто вызываться. Там процедура If, так что это происходит редко. И, вроде, не тупит. worksheet_calculate из меня программер, как из собачего хвоста сито... я её скока тестировал, а не видел очевидного! и что делать? Точнее, как правильно прописать событие?: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2008, 17:18 |
|
||
|
ПО
|
|||
|---|---|---|---|
|
#18+
Поставьте-ка на этой линии кода точку останова и посмотрите, оно (событие, я имею ввиду)вызывается у вас или нет. Успехов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2008, 17:21 |
|
||
|
ПО
|
|||
|---|---|---|---|
|
#18+
VladConn Поставьте-ка на этой линии кода точку останова и посмотрите, оно (событие, я имею ввиду)вызывается у вас или нет. Да, вызывается. Понятия не имею, почему с мал. буквы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2008, 17:43 |
|
||
|
ПО
|
|||
|---|---|---|---|
|
#18+
Public Sub worksheet_calculate()Что-то в скобках там может стоять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2008, 17:45 |
|
||
|
ПО
|
|||
|---|---|---|---|
|
#18+
Как мне по-другому отлавливать изменение ячейки, кроме Public Sub worksheet_calculate()????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2008, 17:52 |
|
||
|
ПО
|
|||
|---|---|---|---|
|
#18+
PlanBPublic Sub worksheet_calculate()Что-то в скобках там может стоять? Private Sub Workbook_SheetCalculate(ByVal Sh As Object) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2008, 18:12 |
|
||
|
ПО
|
|||
|---|---|---|---|
|
#18+
PlanBКак мне по-другому отлавливать изменение ячейки, кроме Public Sub worksheet_calculate()????? Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2008, 18:13 |
|
||
|
ПО
|
|||
|---|---|---|---|
|
#18+
Поставьте RefEdit контроль, его Link cell - адрес ячейки, изменение которой отлавливаете. И обрабатывайте событие RefEdit1_Change() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2008, 22:22 |
|
||
|
ПО
|
|||
|---|---|---|---|
|
#18+
ujcnmPrivate Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) не отловит такая процедура момент, когда формула =СУММ(B55:I55) в ячейке станет выдавать 1 вместо 0. ujcnmPrivate Sub Workbook_SheetCalculate(ByVal Sh As Object) что такое ByVal Sh As Object? что делает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2008, 15:36 |
|
||
|
ПО
|
|||
|---|---|---|---|
|
#18+
VladConnПоставьте RefEdit контроль, его Link cell - адрес ячейки, изменение которой отлавливаете. И обрабатывайте событие RefEdit1_Change()Разжуйте, пожалуйста! Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2008, 17:05 |
|
||
|
ПО
|
|||
|---|---|---|---|
|
#18+
1. Откройте Excel 2. Кликните правой клавишей мыши по свободному пространству на линии меню Excel 3. Удостоверьтесь, что линия Control Toolbox отмечена птичкой 4. На панели Control Toolbox кликните по иконочке с молоточком и гаечным ключом 5. Найдите в появившемся списке RefEdit.ctrl 6. Кликните по этому имени 7. Положите его курсором на лист Excela (проведите по листу курсором с нажатой клавишей мыши) 8. Кликните правой клавишей по положенному на лист контролю 9. Найдите в меню линию Properties 10. Кликните по ней 11. Найдите в списке свойств свойство LinkedCell 12. Напечатайте во второй колоночке A1 13. Закройте панель свойств, кликнув на крестик в правом верхнем углу панели. 14. На панели Control Toolbox кликните по иконочке с угольником, линейкой и карандашом 15. Нажмите Alt-F11 16. В кодовом окне для того листа, на который вы посадили RefEdit, откройте левый верхний комбобокс 17. Выберете RefEdit1 18. В кодовом окне для того листа, на который вы посадили RefEdit, откройте правый верхний комбобокс 18. Выберете Change 19. Внутри процедуры события RefEdit1_Change напишите: Код: plaintext 21. При необходимости, на панели Control Toolbox кликните по иконочке с угольником, линейкой и карандашом еще раз, чтобы выйти из режима дизайна, если вы еще в нем. 22. Напечатайте что-нибудь в клеточку A1 23. Наблюдайте за содержимым B1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2008, 19:27 |
|
||
|
ПО
|
|||
|---|---|---|---|
|
#18+
VladConnЗакройте панель свойств, кликнув на крестик в правом верхнем углу панели.))))))) Подскажите ещё один вопросик: не возникает подводных камней при запуске с другой машины? (например, =ДАТАМЕС() не работает, если пакет анализа не включён) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2008, 09:44 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=35566012&tid=2161793]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
145ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 496ms |

| 0 / 0 |
