|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.02.2011, 00:00 | #1 |
Форумчанин
Регистрация: 21.01.2011
Сообщений: 118
|
Макрос работа по условию изменения значения по ссылке
Есть макрос который работает
Работает макрос так Ячейка С11 (только текстовые данные)заполнена напротив в ячейках G11 H11 I11 находятся образцы формул Ввожу текст в ячейку С12 - формулы появляются в ячейках G12 H12 I12; Ввожу текст в ячейку С13 - формулы появляются в ячейках G13 H13 I13; и тд Если стер текст ( из ячейки допустим С13) - формулы в ячейках G13 H13 I13 убираются Если стер формулы из ячеек G13 H13 I13 то при вводе нового текста в ячейку С13 формулы вновь работают Ввод формул работает при наборе текста а не числовых значений (как условие) Сделано для того чтоб не плодить в большом массиве данных формулы (иначе тормозит таблица при пересчете ячеек) а добавлять формулы в требуемые ячейки при появлении исх данных Проблема следующая: Если текст в исх ячейках С12 С13 С14 и тд появляются, стирается или изменяется не ручным вводом текста а по формуле ссылки из другого листа - то то пересчет формул не ведется Пересчет ведется когда записи в колонку С добавляешь или изменяешь на текущем листе Код:
|
04.02.2011, 01:06 | #2 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Может что-то вроде...?
Не доделал - формулу не протягивает, но сигнализирует!
webmoney: E265281470651 Z422237915069 R418926282008
|
04.02.2011, 03:31 | #3 |
Форумчанин
Регистрация: 21.01.2011
Сообщений: 118
|
Видимо надо сначала проверить при отрытии листа в макросе какие ячейки в столбце С (исх значения) имеют текст а потом "протянуть" на них одну верхнюю ячейку как вариант - хотя если каждый раз заново проверять и старые и новые ячейки с текстом и накладывать на них макрос небыстро будет в большом массиве ...
Так сделать если Range("C11").Select Selection.AutoFill Destination:=Range("C11:C3993"), Type:=xlFillDefault Range("C11:C3993").Select Range("C11").Select ?? куда и как вставить? Последний раз редактировалось Uralmaster; 04.02.2011 в 03:49. |
04.02.2011, 15:29 | #4 |
Форумчанин
Регистрация: 21.01.2011
Сообщений: 118
|
Нужно более ясно уточнить условия
если коротко нужна привязка к исходному листу "Список";
в листе где прописан макрос (лист "Сводный лист") значения в столбце С формируются за счет формул типа =список!B8 и тд с листа "Список" Условия: 1.Если исходные значения в листе "Список" в столбце В появляются в текстовом формате - на листе "Сводный лист" в соответствующих ячейках в столбце С появляется тотже текст и в соответствующих строках на этом листе G12:I12 (и вниз) считаются формулы по образцу G11:I11 Если короче: В "Списке" столбец B появляется (или имеется текст !!) - срабатывают формулы на листе "Сводный лист" 2.В "Списке" столбец B удалили текст - удаляются формулы на листе "Сводный лист" 3.В "Списке" столбец B изменили текст - пересчитываются соотв формулы на листе "Сводный лист" Вот так надо А сейчас этого не происходит - по ссылкам со "Список" мертво .... Действия только тогда происходят когда на самом листе "Сводный лист"значения меняешь в столбце С(не по ссылкам).... Может из-за формул ссылок макрос текст не видит ?? Как то было при макросе поиска тоже не видел текст, формируемый ссылками с другого листа Код:
Код:
и заработало - макрос текст стал видеть Последний раз редактировалось Uralmaster; 04.02.2011 в 15:48. |
04.02.2011, 16:00 | #5 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Что-то мне подсказывает, что мой пример Вы не смотрели. Может быть смотрели, но не поняли?
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 04.02.2011 в 16:08. |
04.02.2011, 23:50 | #6 |
Форумчанин
Регистрация: 21.01.2011
Сообщений: 118
|
смотрел конечно - но как заставить макрос найти измененное значение на сводном листе и протянуть верхнюю ячейку на измененное значение не знаю ...
Последний раз редактировалось Uralmaster; 04.02.2011 в 23:54. |
05.02.2011, 00:06 | #7 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Так:
Код:
webmoney: E265281470651 Z422237915069 R418926282008
|
05.02.2011, 01:01 | #8 |
Форумчанин
Регистрация: 21.01.2011
Сообщений: 118
|
сейчас попробую не понял только куда 10 прибавлять ...
попробовал таблички вылетают но формулы чтото не появляются ... Последний раз редактировалось Uralmaster; 05.02.2011 в 01:18. |
05.02.2011, 05:53 | #9 |
Форумчанин
Регистрация: 21.01.2011
Сообщений: 118
|
вот нашел может поможет
Sub Макрос1()
'макрос протягивает формулу с ячейки I10 до ячейки с общим объёмом Dim iLastRow As Long iLastRow = Cells(Rows.Count, 9).End(xlUp).Row - 1 Range(Cells(10, 9), Cells(iLastRow, 9)).FillDown End Sub |
05.02.2011, 16:44 | #10 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Поясню про i и 10 - в мессидже выкидывает значение i, которое совпадает с номером строки анализирумой таблицы (того, что берём в массив), но отличается от номера строки листа на 10.
Т.е. если Вы хотите использовать это значение в протягивании или заполнении формулой - используйте i+10. И я думаю, что не нужно протягивать, нужно заполнять по одной ячейке - т.к. пересчёт сработает после ручного ввода в каждую ячейку. И например если изменят где-то внизу - то зачем Вам формулы с верха до низа, если работать будут например только две? Конкретно в эти ячейки их и ставить - где изменилось. Но вот как будет, если закопипастить сразу несколько значений - это нужно ещё подумать, как сделать... И кстати при сравнении массивов и тип данных можно проанализировать - текст, число, дата.
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 05.02.2011 в 17:04. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Макрос для изменения цвета заливки | rootking | Microsoft Office Excel | 6 | 11.01.2011 10:38 |
Макрос для изменения записей | trattaturen | Microsoft Office Access | 4 | 02.10.2010 13:22 |
макрос для изменения содержимого ячейки | Cawa1990 | Microsoft Office Excel | 6 | 24.03.2010 18:19 |
макрос изменения формулы в ячейке по назначеной клавише | sdlm | Microsoft Office Excel | 2 | 25.12.2009 13:53 |
Возврат значения функции по ссылке(подскажите новичку) | Malkovich | Общие вопросы C/C++ | 11 | 14.07.2009 08:48 |