Нужна помощь. Найти значение на одном листе, вставить найденное в другой лист

Автор ivamartynov, 10 августа 2015, 10:40

0 Пользователи и 1 гость просматривают эту тему.

ivamartynov

Уважаемый rami, помогите еще! Вот мой файл с вашим макросом и моими кривыми наработками, не получается... при нажатии "кнопки" появляется окно (размеры окна не умею менять), в поле вносим номер он вставляется в ячейку IN.A4 и... ни чего не происходит.  :'(

ivamartynov

Еще, почему то при вставке в ячейку IN.Е16 формулы через макрос она не считает выдаёт ошибку #ИМЯ? При этом, если зайти в ячейку с уже выставлено формулой и "подергать"  её, то получается результат..

rami

Цитата: ivamartynov от 11 августа 2015, 08:17Вот мой файл с вашим макросом и моими кривыми наработками, не получается... при нажатии "кнопки" появляется окно (размеры окна не умею менять), в поле вносим номер он вставляется в ячейку IN.A4 и... ни чего не происходит.
Кривого вроде не заметил, просто в подобного рода работах не сложно запутаться.

Я предложил хорошее решение для предыдущих условий, но сейчас условия задачи изменились, нужно изменять решение.
Макрос срабатывал на изменение содержимого ячейки, но вы поставили в ячейку формулу, а она не изменяется, а только перерасчитывается, но это уже другое событие. В связи с тем, что вы вносите данные через нажатие кнопки—>макрос—>диалоговое окно—>продолжение макроса, то для срабатывания макроса фильтра достаточно вставить ссылку на него где-нибудь в конце макроса вызывающего окно ввода данных (я поставил в самом конце).

Но это ещё не вся проблема — макрос PENY_FNS в строке № 58 (включите нумерацию строк в меню Вид) стирает диапазон критериев, поэтому макрос фильтра ничего не находит. В ячейке А17 на первом листе я записал ссылку на ячейку =IN.A4, но вы должны подумать как заполнить диапазон критериев.

rami

Цитата: ivamartynov от 11 августа 2015, 10:08Еще, почему то при вставке в ячейку IN.Е16 формулы через макрос она не считает выдаёт ошибку #ИМЯ? При этом, если зайти в ячейку с уже выставлено формулой и "подергать"  её, то получается результат..
Можно заменить эту формулу на другую, вот строка кода для замены:
sht.getCellByPosition(4,15).Formula = "=DATEDIF(B13;E14;""m"")-DATEDIF(B13;E14;""y"")*12"

ivamartynov


ivamartynov

Все работает кроме строки sht.getCellByPosition(4,15).Formula = "=DATEDIF(B13;E14;""m"")-DATEDIF(B13;E14;""y"")*12"
такой формулой вообще ни чего не считает

Макросом вставляю формулы в ячейки:
= MONTHS(B13 ; C13 ; 0) - YEARS(B13 ; C13 ; 0) * 12
=IF(E19="НЕТ ДАННЫХ" ; $B$11 ; IF(($E$19-$B$7)*0,01<0 ; 0 ; IF(($E$19-$B$7)*0,01>$B$11 ; $B$11 ; ($E$19-$B$7)*0,01)))

и вместо значения выходит #ИМЯ?
если зайти в ячейку с формулой поставить в конце пробел, потом удалить его, нажать Enter формула срабатывает и видим значение...

еще так можно получить количество дней в месяце?

ivamartynov


JohnSUN

Не ищешь простых путей?
Дни в месяце считаются отдельной функцией DAYSINMONTH(<любая дата в пределах расчетного месяца>)
Вычитать из количества месяцев года помноженные на 12 можно, но лучше использовать функцию MOD()
Вложенные IF-МЕНЬШЕ-ELSE-IF-БОЛЬШЕ... лучше заменить на MIN() и MAX()
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне