Новости:

Теперь на форум можно залогиниться / зарегистрироваться с помощью ВКонтакте. Уже существующие пользователи могут связать свою учетную запись с аккаунтом ВКонтакте одним кликом в профиле пользователя http://forum.msexcel.ru/index.php?action=profile;area=account

Главное меню

Статистика и учет...

Автор Vllad., 27.06.2011, 16:10

« назад - далее »

Vllad.

Добрый день.

Что смог - соорудил сам... Дальше - уже голова кипеть начинает.
Смысл в следующем: При заполнении ячейки ИНН (столбец "D"), таки проставляется дата, из списка (с листа "Vse_klienty") вытаскивается нужная инфа в свои ячейки.
Также работают выпадающие списки с возможностью добавления значений в эти списки с упорядочением данных и ставится время решения проблемы...
Но...
При попытке защитить лист через "Сервис"=>"Защита"=>"Защитить лист" (предварительно снял галочки с "защищаемая ячейка" в столбцах D,F,G) выдается ошибка "run-time error 1004". Ругается же Excel на то, что не может "проставить дату" (Строчка ".Value = Now" в коде VBA).
В VBA я совсем не силен (Все, что удалось сделать - это БЛАГОДАРЯ Вашему форуму и форуму "планеты"... СПАСИБО!!!!!!), поэтому возникают несколько вопросов:

1. КАк исправить то, что я "натворил", чтобы все работало?
2. КАк рабочую таблицу защитить от изменений, хотя бы формулы спрятать, чтоб их никто случайно не удалил?
3. В идеале же, хотелось бы добиться результата, как на печатной машинке: перевел курсор на следующую строчку - предыдущая строка (с заполнеными "незащищенными ячейками" ИНН+Суть проблемы+Решение) не доступна для редактирования...
4. И последний вопрос: Как сделать выборку по столбцу D (ИНН), чтобы в таблице "ПЯТЕРКА самых-самых" отображались данные по количеству совпадений?

Файл-пример прилагается...
Готовых решений не прошу... Прошу просто направить "на путь истиный" :)

Шпец Докапыч

1. Снять галочку "защищаемая ячейка" в столбце "B".
2-3. Защиту листа и защитные галочки ячеек можно выставлять/снимать макросом.
Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли

Mart222

1.Еще со столбца Н нужно галочку снять
2.Можно макрос восстановления формул сделать

Vllad.

Цитата: Шпец Докапыч от 28.06.2011, 09:35
1. Снять галочку "защищаемая ячейка" в столбце "B".
Цитата: Mart222 от 28.06.2011, 10:23
1.Еще со столбца Н нужно галочку снять
То-то и оно, что без этих галочек (столбцы B и H), все работает...

Vllad.

...
А по 4-у пункту? Нет предложений? Видимо, некорректно задаю вопрос...
Как сделать выборку по максимальному количеству совпадений в столбце D?
Как сформировать "пятерку" в убывающем порядке уже, вроде, сообразил...

Шпец Докапыч

#5
Цитата: Vllad. от 28.06.2011, 10:48
То-то и оно, что без этих галочек (столбцы B и H), все работает...
Ну и отличненько:
         With Target(*, *)
            .Parent.Unprotect "12345"
            .Value = Now
            .Parent.Protect "12345"
         End With


Кстати, во избежание зацикливания, рекомендую при изменениях ячеек в реакции на изменение (Worksheet_Change) отключать реакцию на изменение:
Application.EnableEvents = 0
'код
Application.EnableEvents = 1


4. СЧЁТЕСЛИ() подойдёт?
Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли

Vllad.

Цитата: Шпец Докапыч от 28.06.2011, 11:08
Ну и отличненько:
         With Target(*, *)
            .Parent.Unprotect "12345"
            .Value = Now
            .Parent.Protect "12345"
         End With

:o
Где "плюсики" за помощь ставить!?!??

Цитата: Шпец Докапыч от 28.06.2011, 11:08
Кстати, во избежание зацикливания, рекомендую при изменениях ячеек в реакции на изменение (Worksheet_Change) отключать реакцию на изменение:
Application.EnableEvents = 0
'код
Application.EnableEvents = 1

Ну, это постараюсь догнать...
4. СЧЕТЕСЛИ() - спасибо за подсказку... Буду пробовать...

_Boroda_

Можно еще сводной таблицей. Там есть опция для показа первых n значений
Скажи мне, кудесник, любимец ба'гов...



Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995

Vllad.

#8
Хм...
По четвертому пункту "завис"...
Не могу понять, с чего начать...
На форуме множество примеров выборки по известным начальным данным (к примеру, с помощью =ВПР(_)), но ни одного примера как искать совпадения и возвращать данные одинаковых ячеек + количество совпадений (и так несколько раз, в порядке убывания)...
На счет защиты строки, после изменения определенной ячейки в этой строке, сам точно не придумаю, т.к VBA не знаю ВООБЩЕ, а формулами здесь, я так дУмаю, не обойтись...
И еще возник вопрос:
Для поиска в БД используется графа ИНН. Но выгружается эта графа в формате  ="номер_ИНН" , соответственно и для выгрузки данных в таблицу приходится набирать равно+кавычки...
Пробовал поменять в формате ячеки тип формата на свой - видимо, как-то не так меняю...

_Boroda_

Положите еще разок свой файл, только заполненный данными. И в нем уже напишите - в этой ячейке хочу, чтобы было так, а в этой - так. Чтобы все уж совсем ясно было.
Скажи мне, кудесник, любимец ба'гов...



Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995

Vllad.

Все, что получилось на данный момент - в архиве...
Защита листа включается автоматически, после изменения ячейки "Дата-время"...