Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/С фунцией CountColor данные не обновляются на другом листе - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » С фунцией CountColor данные не обновляются на другом листе (Макросы/Sub)
С фунцией CountColor данные не обновляются на другом листе
Sancho Дата: Среда, 25.05.2016, 12:36 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 0 ±
Замечаний: 0% ±

2007, 2010, 2013
Всем привет.
Второй день пытаюсь разобраться самостоятельно, но пока бессилен, буду рад Вашим любым советам.
На листе "th" файла примера кликом по ячейкам в диапазонах A4:G22;I4:O22 выбираем необходимое значение от 1 до 7. Макросом листа "Лист1 (th)" по одному клику мышью заливается цветом ячейка, по двойному клику заливка снимается. макрос ограничивает количество закрашенных ячеек (не более одного) в строке между столбцами A:G и I:O. В столбцах S T определяется при помощи CountColor какое значение было выбрано в диапазонах. В Столбцах H P Q рассчитывается среднее значение, в строке 23 рассчитывается итог. Данные строки 23 переносятся на Лист1 "=H23" "=P23" "=Q23"
Теперь суть проблемы:
1. При изменении данных расчет на листе "th" производится а вот обновление этих данных на "Лист1" не производится, если сразу перейти на Лист1 посмотреть результат. Автоматическое вычисление включено. Обновление Листа1 происходит если нажать пересчитать книгу или сохранить. Что макросом не так?
2. При щелчках мыши на других ячейках происходит подвисание появляется надпись "расчет" подозреваю что необходимо ограничить действие функции CountColor. Подскажите как.
3. При попытке переименовать любой из листов в файле, Excel "падает", даже падает при данном действии в другой книге при открытой этой. если книгу с макросом закрыть то в другой все нормально переименовывается
Подскажите пожалуйста решение этих проблем.
К сообщению приложен файл: CountColor.xlsm(27Kb)
 
Ответить
СообщениеВсем привет.
Второй день пытаюсь разобраться самостоятельно, но пока бессилен, буду рад Вашим любым советам.
На листе "th" файла примера кликом по ячейкам в диапазонах A4:G22;I4:O22 выбираем необходимое значение от 1 до 7. Макросом листа "Лист1 (th)" по одному клику мышью заливается цветом ячейка, по двойному клику заливка снимается. макрос ограничивает количество закрашенных ячеек (не более одного) в строке между столбцами A:G и I:O. В столбцах S T определяется при помощи CountColor какое значение было выбрано в диапазонах. В Столбцах H P Q рассчитывается среднее значение, в строке 23 рассчитывается итог. Данные строки 23 переносятся на Лист1 "=H23" "=P23" "=Q23"
Теперь суть проблемы:
1. При изменении данных расчет на листе "th" производится а вот обновление этих данных на "Лист1" не производится, если сразу перейти на Лист1 посмотреть результат. Автоматическое вычисление включено. Обновление Листа1 происходит если нажать пересчитать книгу или сохранить. Что макросом не так?
2. При щелчках мыши на других ячейках происходит подвисание появляется надпись "расчет" подозреваю что необходимо ограничить действие функции CountColor. Подскажите как.
3. При попытке переименовать любой из листов в файле, Excel "падает", даже падает при данном действии в другой книге при открытой этой. если книгу с макросом закрыть то в другой все нормально переименовывается
Подскажите пожалуйста решение этих проблем.

Автор - Sancho
Дата добавления - 25.05.2016 в 12:36
KuklP Дата: Среда, 25.05.2016, 13:13 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1994
Репутация: 435 ±
Замечаний: 0% ±

[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   If Target.Cells.Count > 1 Then Exit Sub
        If Not Intersect(Target, Range("a4:g22")) Is Nothing Then
        Range(Cells(Target.Row, 1), Cells(Target.Row, 7)).Interior.ColorIndex = xlNone
        Target.Interior.ColorIndex = 46
    End If
    If Not Intersect(Target, Range("i4:o22")) Is Nothing Then
        Range(Cells(Target.Row, 9), Cells(Target.Row, 15)).Interior.ColorIndex = xlNone
        Target.Interior.ColorIndex = 46
    End If
  Application.Calculate
End Sub
[/vba]


Ну, с НДС и мы чего-то стoим! kuklp@mail.ru
WM Z206653985942, R334086032478, U238399322728
 
Ответить
Сообщение[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   If Target.Cells.Count > 1 Then Exit Sub
        If Not Intersect(Target, Range("a4:g22")) Is Nothing Then
        Range(Cells(Target.Row, 1), Cells(Target.Row, 7)).Interior.ColorIndex = xlNone
        Target.Interior.ColorIndex = 46
    End If
    If Not Intersect(Target, Range("i4:o22")) Is Nothing Then
        Range(Cells(Target.Row, 9), Cells(Target.Row, 15)).Interior.ColorIndex = xlNone
        Target.Interior.ColorIndex = 46
    End If
  Application.Calculate
End Sub
[/vba]

Автор - KuklP
Дата добавления - 25.05.2016 в 13:13
Sancho Дата: Среда, 25.05.2016, 13:29 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 0 ±
Замечаний: 0% ±

2007, 2010, 2013
KuklP, привет! Удаление строки
[vba]
Код
Application.Volatile
[/vba] не решило ни одну из проблем.
 
Ответить
СообщениеKuklP, привет! Удаление строки
[vba]
Код
Application.Volatile
[/vba] не решило ни одну из проблем.

Автор - Sancho
Дата добавления - 25.05.2016 в 13:29
KuklP Дата: Среда, 25.05.2016, 13:35 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 1994
Репутация: 435 ±
Замечаний: 0% ±

Соболезную. Вы бы справкой чаще пользовались:
Application.Volatile Method
Marks a user-defined function as volatile
А Вы ее понатыкали куда только можно. Зачем?
Там ключевая строка:
[vba]
Код
Application.Calculate
[/vba]
При выделении ячеек(и изменении цвета) пересчитывается вся книга. У меня все пересчитывается. Вам не это надо?


Ну, с НДС и мы чего-то стoим! kuklp@mail.ru
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеСоболезную. Вы бы справкой чаще пользовались:
Application.Volatile Method
Marks a user-defined function as volatile
А Вы ее понатыкали куда только можно. Зачем?
Там ключевая строка:
[vba]
Код
Application.Calculate
[/vba]
При выделении ячеек(и изменении цвета) пересчитывается вся книга. У меня все пересчитывается. Вам не это надо?

Автор - KuklP
Дата добавления - 25.05.2016 в 13:35
Sancho Дата: Среда, 25.05.2016, 13:44 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 0 ±
Замечаний: 0% ±

2007, 2010, 2013
У меня все пересчитывается.


Значения на листе1 обновляются? у меня нет.
Код не мой, я пока только способен подогнать под свои задачи.
 
Ответить
Сообщение
У меня все пересчитывается.


Значения на листе1 обновляются? у меня нет.
Код не мой, я пока только способен подогнать под свои задачи.

Автор - Sancho
Дата добавления - 25.05.2016 в 13:44
KuklP Дата: Среда, 25.05.2016, 13:51 | Сообщение № 6
Группа: Проверенные
Ранг: Старожил
Сообщений: 1994
Репутация: 435 ±
Замечаний: 0% ±

У меня значения на листе1 обновляются. Мож Вы что-то не так делаете?
К сообщению приложен файл: 9324210.xlsm(29Kb)


Ну, с НДС и мы чего-то стoим! kuklp@mail.ru
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеУ меня значения на листе1 обновляются. Мож Вы что-то не так делаете?

Автор - KuklP
Дата добавления - 25.05.2016 в 13:51
Sancho Дата: Среда, 25.05.2016, 14:50 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 0 ±
Замечаний: 0% ±

2007, 2010, 2013
KuklP, спасибо, я не сразу разглядел что Вы заменили еще и
[vba]
Код
ActiveSheet.Calculate
[/vba]
на [vba]
Код
Application.Calculate
[/vba]

действительно не так делал. хотя до форума я эту строку так и поправлял оставляя volatile. сейчас работает. СПАСИБО!
 
Ответить
СообщениеKuklP, спасибо, я не сразу разглядел что Вы заменили еще и
[vba]
Код
ActiveSheet.Calculate
[/vba]
на [vba]
Код
Application.Calculate
[/vba]

действительно не так делал. хотя до форума я эту строку так и поправлял оставляя volatile. сейчас работает. СПАСИБО!

Автор - Sancho
Дата добавления - 25.05.2016 в 14:50
KuklP Дата: Среда, 25.05.2016, 14:52 | Сообщение № 8
Группа: Проверенные
Ранг: Старожил
Сообщений: 1994
Репутация: 435 ±
Замечаний: 0% ±

Я Вам специально это в № 4 подчеркнул.


Ну, с НДС и мы чего-то стoим! kuklp@mail.ru
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеЯ Вам специально это в № 4 подчеркнул.

Автор - KuklP
Дата добавления - 25.05.2016 в 14:52
Sancho Дата: Четверг, 26.05.2016, 08:11 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 0 ±
Замечаний: 0% ±

2007, 2010, 2013
del
[moder]Вопросы к данной теме не относятся. Читайте Правила форума[/moder]


Сообщение отредактировал Sancho - Четверг, 26.05.2016, 08:39
 
Ответить
Сообщениеdel
[moder]Вопросы к данной теме не относятся. Читайте Правила форума[/moder]

Автор - Sancho
Дата добавления - 26.05.2016 в 08:11
Мир MS Excel » Вопросы и решения » Вопросы по VBA » С фунцией CountColor данные не обновляются на другом листе (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!