Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 След.
Ошибка «Run-time error» на выпадающий список, Run-time error '-2147417848 (80010108)'
 
Универсально, просто и действенно, как принято у нас говорить: "дёшево и сердито" - это элемент элегантности. Гораздо эстетичнее, чем три действия.
Ошибка «Run-time error» на выпадающий список, Run-time error '-2147417848 (80010108)'
 
Апострофф, элегантно. Спасибо!
Ошибка «Run-time error» на выпадающий список, Run-time error '-2147417848 (80010108)'
 
Выполняю следующий код:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim myR As Integer

    myR = ActiveCell.Row

    If ActiveCell.Value > 0 _
    And ActiveSheet.Cells(myR, 2) = "МойТекст" Then
        ActiveCell.Offset(1).Value = 1
    End If
End Sub

При установке в ячейку значения через Ctrl+Enter код отрабатывает, как надо. Однако, при использовании выпадающего списка, выдаёт ошибку «Run-time error '-2147417848 (80010108)' Method 'Value' of object 'Range' failed» и Excel виснет. Попробовал включить в код On Error Resume Next — ошибка «Недостаточно системных ресурсов для полного вывода на экран».

Форум почитал, но конкретных универсальных решений не нашёл.
Excel 2007

----

PS
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim myR As Integer

    myR = ActiveCell.Row

    If ActiveCell.Value > 0 _
    And ActiveSheet.Cells(myR, 2) = "МойТекст" Then
        ActiveCell.Offset(1).Select
        ActiveCell.Value = 1
        ActiveCell.Offset(-1).Select
    End If
End Sub

Работает, но как-то нелепо.
Присвоить имя ячейкам, когда их больше тысячи
 
В общем, если кто-то когда-то заморочится подобной темой, то знайте — я таки ушёл от имён. Подход к ним можно было реализовать на макросе, создав массив с адресами «as string», но в целом идея с двумерным массивом после пары месяцев работы была реализована. Осталось придумать, как теперь передавать данные в нелинейную таблицу, удобную для чтения пользователем.
Присвоить имя ячейкам, когда их больше тысячи
 
ZCaspeR, так же, как и за три - суммой. Вообще-то за 9 мне не надо, только за каждый месяц, каждый квартал и за год в целом. Но, если надо будет за 9, то суммой 9 ячеек.

Статью по ссылке почитаю на досуге. Предлагайте, кидайте ещё ссылок, если есть. Со страницей Таблицы я готов делать что угодно, даже изменить способ предоставления план-отчета. Лишь бы это всё работало в масштабе одного года так же, как работает на один квартал.
Присвоить имя ячейкам, когда их больше тысячи
 
ZCaspeR, есть разница? Ячейки несмежные. Тут их две, там у меня их тысяча, но принцип должен работать один и тот же. Если любой принцип ограничен в 255 символов (это касается и макроса), то мы просто закроем тему с резюме: "программное ограничение".

Вот квартальный отчет (пост #36) - я данные подставляю прямо в таблицу, а двухмерные массивы на листе 2 их обрабатывают и из них значения считываются обратно под таблицу листа 1. Чем не БД? Пользователь видит и заполняет то, что ему нужно и понятно, а работает с этими данными лист 2, одномерные массивы с адресами, двухмерные массивы с данным, обычные самые формулы ввода-вывода. Можно было реализовать другими формулами, но суть-то та же - пользователь видит удобный для себя формат, а Excel работает в удобном для себя.
Изменено: Newser - 24.07.2015 11:27:20
Присвоить имя ячейкам, когда их больше тысячи
 
Вот, кто мастера по упрощению, скажите, как вы получите значения из 2 и 8 ячейки, если у вас есть 9 ячеек с одинаковым содержанием? Лично мне вот проще дать имя 2, 8, 14й и т.д. ячейке, а потом выбрать их через ЯЧЕЙКА(адрес;имя), затем работать, как с диапазоном. По вашей логике эта таблица слишком сложна, её надо разбить на две, а потом создать третью, которая будет отображать значения из первых двух.
202020
2020 20
20 20 20
Присвоить имя ячейкам, когда их больше тысячи
 
JeyCi, если я правильно понимаю, то вы предлагаете решение в духе выбор месяца или выбор прибора и получение на него соответствующих данных? Это, конечно, здорово, но оно не будет работать, т.к. сопоставление данных из разных ячеек или диапазонов я могу делать лишь по имени, а с именами у нас ограничение в количество символов.
Цитата
JeyCi написал:
даже интересно, на сколько вырастут продажи от получения этой инфо в таком виде за целый год
Это не продажи, а метрология. Замена документов, которых сейчас таблиц 20 всяких разных (при том рукописных). Цель - сокращение документации и сведение 90% информации в одну таблицу. Кстати, эта таблица будет идти на печать, поэтому ещё важно, чтобы она занимала не 200 листов, а хотя бы 20. В данном виде она отвечает требованиям нашей логики представления данных, объёму, который способна вместить и возможности делать заметки от руки. То, что Excel затыкается после 255 символов - это не мой косяк. Если бы его не было, то никто бы из вас тут не орал, что это ужас и нереализуемо.

----

Отдаю дань уважения пользователю Sanja. Единственный человек, который мне объяснил причину, предложил варианты и не развозил демагогию на тему невозможности запустить то, что и так работает в малых масштабах.
Изменено: Newser - 24.07.2015 07:12:33
Присвоить имя ячейкам, когда их больше тысячи
 
Вариант с именами - это моё личное предположение, как считывать данные из несмежных ячеек и не путать их с данными в других. Если кроме имён есть что-то ещё, то выкладывайте хотя бы ссылками на статьи. Может, есть обход ограничения в 255 символов, тогда можно тоже это проработать.
Присвоить имя ячейкам, когда их больше тысячи
 
Sanja, попробуйте это имя использовать где-нибудь. СЧЕТЕСЛИ(1:160;ППР) выдаёт 0, хотя должен 360, а ЯЧЕЙКА("адрес";ППР) выдаёт ЗНАЧ!, хотя при рабочем имени выдаёт адреса ячеек.

Макросы - это сложно уже для меня. В крайнем случае, сделаю эту таблицу по участкам на нескольких листах, но это план "Ж", до него есть ещё несколько неопробованных идей, включая план "Г" :)
Присвоить имя ячейкам, когда их больше тысячи
 
Для нас, самих сотрудников такая таблица - рай земной, её объяснять даже особо не пришлось. Я же не прошу невозможного - это дело уже работает на трёх месяцах, давайте сделаем так же, но на 12.
Ваш пример содержит дай бог 1% от того, что нужно делать в конечном счёте. Поверьте, я так уже делал и мне не понравилось, что на выходе.

Упростить всегда успею в конце-концов )
Присвоить имя ячейкам, когда их больше тысячи
 
vikttur, вы можете переводить тему хоть на яблоки, но и я могу процитировать вас: «давайте мы сделаем на всех 6ми-дюймовых телефонах кнопки слева, чтобы пальцем правой руки было не дотянуться. Зачем пользователю удобство, если программа считает слева на право и код так проще и проворнее?»
Присвоить имя ячейкам, когда их больше тысячи
 
alexthegreat, я не представляю, как сделать эту таблицу так же, но иначе. Для каждого прибора отдельно кто принял, отдельно кто выдал, отдельно запчасти? Это не вариант. Никто не станет листать такие простыни и заполнять их. Нужно или выводить модульные окна, типа: "Выберите прибор - Выберете действие - Укажите фамилию", но это 1С или АСОМИ, я с ними не сталкивался лицом к лицу, потому в тот лес и не заглядываю даже.
Присвоить имя ячейкам, когда их больше тысячи
 
vikttur, экселю она тоже понятна до тех пор, пока нет необходимости её расширить. Как видите, всё меняется и считается. Я не спорю, что несколько извращенно с точки зрения программы, но мы ведь делаем это для пользователя, а не для программы. Вопрос исключительно в том, как работать с таким графиком, когда он больше, чем квартальный.
Присвоить имя ячейкам, когда их больше тысячи
 
Так выглядит заполненный квартальный отчёт. Лист 1 содержит сам график, куда пользователь вносит данные, а лист 2 работает с массивами, полученными через имена, данные из этих массивов отображаются в план-отчете под графиком на странице 1
Изменено: Newser - 23.07.2015 13:46:08
Присвоить имя ячейкам, когда их больше тысячи
 
Sanja, я проверял - не проканал такой метод с несмежными ячейками.

Нужно мне это для сравнения планов и фактов. Ну вот так я вижу, что через имена это можно сделать. Другого способа не нашёл. Пример я сделал в файле, но только планирование (ППР - план приёма), ещё там будет отчет (даты, проставленные в столбцах "факт"). Даты - не даты, а тупо число. Сопоставление с месяцем идёт ниже.
Цитата
Несколько несмежных ячеек содержат одинаковое содержание: Текст
Чтобы работать с диапазоном, я ищу ячейки через Ctrl+F, называю именем МоиЯчейки

Потом формирую =ЯЧЕЙКА("адрес";МоиЯчейки), откуда получаю адреса: A1, C1, D1, A3, C3, D3
Эти адреса находятся в смежных ячейках и через ДВССЫЛ я работаю с ними, как с диапазоном смежных ячеек.
Изменено: Newser - 23.07.2015 11:29:34
Присвоить имя ячейкам, когда их больше тысячи
 
За неимением свежих идей, получил адреса по горизонтали и вертикали, а затем сцепил их, создав массив. В принципе годно, но двухмерный массив неудобен, надо его превращать в одномерный. Видел тут темы по схожей задаче. попробую пока работать в этом направлении. У кого есть предложения - предлагайте.
Присвоить имя ячейкам, когда их больше тысячи
 
Sanja, теперь понимаю. Блин, мне получить адреса ячеек, тогда был бы диапазон. Как-то можно получить адреса ячеек из диапазона по содержимому? Формула =ЯЧЕЙКА("адрес";Имя) возвращает строкой адреса всех ячеек, соответствующих имени. Такое же бы, но по содержанию из диапазона, типа =ЯЧЕЙКА("адрес", диапазон, критерий). Тогда можно сформировать диапазон из нескольких обращений.
Присвоить имя ячейкам, когда их больше тысячи
 
Sanja, ради интереса выбрал 264 ячейки и применил к ним свой метод выборки. Оно работает, значит, дело не в 255 символах.
Присвоить имя ячейкам, когда их больше тысячи
 
JayBhagavan, рекомендация замечательная ) Я могу все это свести в один диапазон, но если траблы с ограничением действуют в любых ситуациях, то мне придется всё равно тяжко. Буду с компа - сформирую более простой вариант, чтобы на нем попробовать импорт и экспорт значений.
Присвоить имя ячейкам, когда их больше тысячи
 
Сергей, я не могу показать готовый вариант этой таблицы, т.к. его еще нет в природе. А появится он, когда можно будет несмежным ячейкам назначить имя. Если вы знаете способ лучше, чем описан выше, то излагайте. В этой теме описано все - что, где и как.
Присвоить имя ячейкам, когда их больше тысячи
 
Сергей, а вам сильно интересно? ППР - план проверки будет содержать число, когда прибор должен быть проверен. На основе него будет формироваться план-отчет, где количество заполненных ППР за месяц, квартал, полугодие и год будет сравниваться с датой ФПР (фактической проверки), а так же приемо-сдатка, где ФСД(факт сдачи(дата)) складывается с ФПР. Так же там есть даты ремонта, планируемой поверки, фактической поверки - ДР, ППО, ФПО.
Изменено: Newser - 22.07.2015 16:13:56 (опечатки с телефона)
Присвоить имя ячейкам, когда их больше тысячи
 
Sanja, т.е. мне проще создать Диапазон1, Диапазон2, Диапазон3?
----
Чтобы совсем не было вопросов:
Несколько несмежных ячеек содержат одинаковое содержание: Текст
Чтобы работать с диапазоном, я ищу ячейки через Ctrl+F, называю именем МоиЯчейки

Потом формирую =ЯЧЕЙКА("адрес";МоиЯчейки), откуда получаю адреса: A1, C1, D1, A3, C3, D3
Эти адреса находятся в смежных ячейках и через ДВССЫЛ я работаю с ними, как с диапазоном смежных ячеек.
Присвоить имя ячейкам, когда их больше тысячи
 
Юрий М, ячейки несмежные! Этот диапазон надо ещё сформировать. Файл в прикреплении, речь идёт о ячейках, которые сейчас содержат ППР.
Изменено: Newser - 22.07.2015 15:37:33
Присвоить имя ячейкам, когда их больше тысячи
 
Одно имя диапазону из тысячи ячеек. Только ячейки несмежные, т.е. их нужно сначала выбрать, а потом присвоить одно имя.
Присвоить имя ячейкам, когда их больше тысячи
 
Юрий М, хочу, чтобы эксель отрабатывал на тысячи так же, как на десятки. Не такое большое требование в наше время высокой производительности, но что-то ему не хватило. Я пробовал комбинации с фильтрами и условным форматированием, но эти методы выдают мне список ячеек не диапазоном, а с разрывами. В принципе дел ручного труда на две минуты, но хотелось бы автоматизировать процесс, потому что дата не в единственном экземпляре.  
Присвоить имя ячейкам, когда их больше тысячи
 
Примерный файл пока ничего не содержит и там будет дата ремонта, дата выдачи, дата приемки, дата проверки и дата аттестации. Так что выбор по дате не канает, нужно присваивать имена.
Присвоить имя ячейкам, когда их больше тысячи
 
Владимир, конечная цель - иметь график проверки этих самых приборов. В ячейку "дата проверки" я буду указывать число, когда прибор проверялся, а потом суммировать общее количество ячеек, которые "дата проверки". Вот я и собираюсь присвоить этим ячейкам имя, а потом =СЧЁТЗ(Имя)
Присвоить имя ячейкам, когда их больше тысячи
 
Юрий М, составляю расписание проверки приборов на год. ~260 приборов проверяются раз в месяц. Без имён будет сложно составлять дальнейший отчёт, т.к. там формула
Присвоить имя ячейкам, когда их больше тысячи
 
Есть у меня несмежные ячейки с одинаковым содержимым, например: "Текст". Нажимаю Ctrl+F - "Текст" - найти все - Ctrl+A; Присвоить имя.

Всё это замечательно работает до тех пор, пока ячеек менее 300 или около того. Сейчас появилась необходимость дать имя ячейкам, которых от 2 до 5 тысяч и диспетчер имён "отказывается" работать, не открывая окно присвоения имени.

CtrlF показывает адреса ячеек, которые содержат "Текст", но получить эти адреса через =ЯЧЕЙКА("адрес";ПОИСКПОЗ("Текст";диапазон)) у меня не выходит.

В общем, мне или надо разобраться, как присвоить имена через стандартные средства или как получить адреса ячеек с одинаковым содержимым, чтобы подставить в диспетчер имён вручную. Или он не работает, когда адресов большее 300?
Страницы: 1 2 След.
Наверх