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

Страницы: 1 2 3 След.
Объединить соседние ячейки при нужном значении выпадающего списка
 
Всё, разобрался :) Тему можно закрывать. Большое спасибо Юрий М, 95% кода его :)
Объединить соседние ячейки при нужном значении выпадающего списка
 
Проблема в том, что должны объединяться ячейки из столбцов "B" и "С" в строках, где появляется значение, а не только в 9 строке.
Изменено: ivponomarev - 08.11.2016 13:58:17
Объединить соседние ячейки при нужном значении выпадающего списка
 
Просто есть что еще доработать, а вы сказали что обсуждение вышло за рамки предыдущей темы, вот я и создал новую :)
Блуждающий выпадающий список
 
Создал новую тему
Объединить соседние ячейки при нужном значении выпадающего списка
 
Смысл такой. Если значение из списка "Наименование 2", то объединяются ячейки "B" и "С", а если значение из списка "Наименование 1", то разъединяются.
Наименование 2 и наименование 1 - это части большого списка Наименование. (-,Заказ№, ручка - это наименование 1, а все остальное - это Наименование 2)  
Блуждающий выпадающий список
 
Юрий М, пардон, это у меня в Excel какой-то глюк был. Работает, только обеденять он должен при выборе значения из Наименование2. Меняю в коде Наименование1 на Наименование2 и появляется ошибка "Невозможно получить свойство Countif класса worksheetFunction"
Изменено: ivponomarev - 08.11.2016 13:04:39
Блуждающий выпадающий список
 
Может быть вы не ту версию выложили? С ячейками ничего не происходит и при выборе наименования "Ручка" в соседней ячейке не появляется именованный список "Тип"
Изменено: ivponomarev - 08.11.2016 12:57:11
Блуждающий выпадающий список
 
Спасибо всем вышеотписавшемся. За совет и за реальную помощь. Но последний вариант не работает и даже, то что раньше работало, перестало работать. Принцип я понял, попробую сам дальше разобраться и если получится, то отпишусь.
Блуждающий выпадающий список
 
Юрий М, ну может так поймете, это мой не правильный вариант, но с рабочими ячейками
Блуждающий выпадающий список
 
Юрий М, Посмотрите в диспетчере имен. Я думаю так, понятнее будет,
Блуждающий выпадающий список
 
Юрий М, пардон, не значение, а именованный список называется "Наименование2", а он в свою очередь часть именованного списка "Наименование" и если выбрать значения "
Разделитель
Направляющая + Горизонт
Ролики
Рамка (верх+низ)
Направляющая (распашная дверь)
Распашной механизм
то ячейка "В" и "С" объеденяются.
И соответственно если выбран список "Наименование1" то разъеденяются.
Блуждающий выпадающий список
 
Юрий М,работает отлично :)
Только там ещё одна задумка есть. Если не трудно посмотрите пожалуйста.
Смысл такой. Если значение из списка "Наименование 2", то объединяются ячейки "B" и "С", а если значение из списка "Наименование 1", то разъединяются.
Наименование 2 и наименование 1 - это части большого списка Наименование. (-,Заказ№, ручка - это наименование 1, а все остальное - это Наименование 2)
У меня это было так (см.ниже), но раз проверка Диапазона только 1 раз, то куда это запихнуть?
Код
Application.DisplayAlerts = False
        If Not Intersect(Target, [B1:B30]) Is Nothing Then Set Rng = Sheets("Лист2").Range("Наименование2").Find(what:=Target, LookIn:=xlValues, lookAt:=xlWhole)
        If Not Rng Is Nothing Then Target.Resize(, 2).Merge
        If Not Intersect(Target, [B1:B30]) Is Nothing Then Set Rng = Sheets("Лист2").Range("Наименование1").Find(what:=Target, LookIn:=xlValues, lookAt:=xlWhole)
        If Not Rng Is Nothing Then Target.UnMerge
Изменено: ivponomarev - 07.11.2016 10:23:19
Блуждающий выпадающий список
 
Цитата
Юрий М написал: Проверьте.
Вы как всегда на высоте :) Спасибо, на первый взгляд работает как нужно.
Вынужден сейчас уйти, более детально проверю чуть позже и отпишусь :)
Блуждающий выпадающий список
 
Код
 If Target = "-" Then Target.Resize(, 4).ClearContents А это я не понял зачем нужно ))

Это если выбрано тире, то очищаются все ячейки в этой строке
Блуждающий выпадающий список
 
Цитата
Юрий М написал:
если выбрали в столбце В любое другое значение (не ручка), то, разве не нужно удалять выпадающий список из столбца С и очищать ячейку?
Всё правильно, нужно  :) Но это должен был быть следующий вопрос, Вернее я разобрался с помощью макрорекордера, но это выглядело не очень и удаляло все форматы включая центровку текста.
Блуждающий выпадающий список
 
Цитата
Юрий М написал:
И не пойму, зачем Вы сначала в обоих случаях удаляете выпадающий список?
Опять же макрорекордер
Блуждающий выпадающий список
 
макрорекордер так выдаёт, вот и делаю так.
Блуждающий выпадающий список
 
:oops: Нууууу. Что на форумах нашел, то и вставляю. Вроде работает, но не всегда.
Блуждающий выпадающий список
 
Помогите усмирить списки :)
В столбце "B" должен появляться список (Наименование), если одно из выбранных значений = "Ручка", то в соседней ячейке должен появиться список (Тип). Вроде все работает, но если нужно изменить в столбце "В" значение, то вместо "Наименование" появляется "Тип", а должен он появляться только в столбце "С"
[ Закрыто] Помогите понять в чем проблема
 
Помогите пожалуйста понять в чем проблема.
При нажатии клавиши Delete, в любой ячейке, срабатывает макрос, а должен только в определенном столбце "B" и без Delete
Обращение к именованному диапазону через макрос
 
Заработало!!  :)
выкрутился из ситуации, частично через формулы
макросом подставляю в нужные ячейки формулы которые проверяют ячейки столбца В на пустоту и в зависимости от значения заполняют или очищают ячейки
Код
If Not Intersect(Target, [B7:B30]) Is Nothing Then Target.Offset(0, 2).FormulaR1C1 = "=IF(ISBLANK(RC[-2]),"""",RC[19])"
подставленная формула берет значения из ячеек (V и W), а там уже формулами
Код
=ЕСЛИ(T13>0;"Длина";ВПР(U13;Что!$H$3:$I$10;2;ЛОЖЬ))

определяется какое значение должно быть в ячейке
Может кому полезно будет, если поймете, что я тут написал.

Юрий М, спасибо что возились тут со мной  :)
 
Изменено: ivponomarev - 15.08.2016 12:25:05
Обращение к именованному диапазону через макрос
 
вот Else точно там должно быть  :D
Так, попробую еще раз объяснить.
Есть листовой материал ДВП, ЛДСП
У каждого свой размер, который формулой прописывается в столбцах V и W в зависимости от значения в ячейки из столбца В.
У ДВП 2745х1700
У ЛДСП 2800х2070.
И например если в ячейке В стоит значение из именованного списка "Наиминование" - ЛДСП или ДВП, то значение в следующей ячейке "Длина"(Просто текст),
а если в ячейке В значение не соответствующее именованному списку "Наименование", то в следующей ячейке формула, берущая значение из ячейки V (Цифры) если значение в ячейке А - число или очищает ячейки если в A значение не число

=ЕСЛИ(ЕЧИСЛО($A10);V10;"") - если значение в ячейке А10 - число, то значение из V10, иначе пусто.

И так для всего диапазона B7:B30

просто нужно записать формулу, в следующую ячейку, если значение не соответствует именованному диапазону "Наименование"
Изменено: ivponomarev - 15.08.2016 07:58:57
Обращение к именованному диапазону через макрос
 
Юрий М,
Блин, ну все просто (для Вас)  :) один шаг до победы.
Код
If Not Intersect(Target, [B7:B30]) 
Is Nothing Then Set Rng = Sheets("Что").Range("Наименование").Find(what:=Target, LookIn:=xlValues, lookAt:=xlWhole)
If Not Rng Is Nothing Then Target.Offset(0, 1) = "Длина"
В этот код нужно добавить ещё одно условие: если не соответствует диапазону "Наименование" то формула =ЕСЛИ(ЕЧИСЛО($A7);V7;"")

Что-то типа ИНАЧЕ ФОРМУЛА
Изменено: ivponomarev - 14.08.2016 23:02:04
Обращение к именованному диапазону через макрос
 
Цитата
Юрий М написал:
Нельзя разве из любой строки ссылаться на одну ячейку?
Именованных диапазонов 8 штук все они могут быть в одной заявке и в любом месте, так что одна ячейка никак не катит.
Цитата
Юрий М написал:
проблема у Вас в чём?
В том что если например в ячейке B10 выбираем например ДВП (тут все нормально, появляется шапка с нужными нам значениями)
В следующей строке B11 выбираем например ДВП Белая (всё тоже нормально появляется длина, ширина)
Потом удаляем значение в В10 выбрав пробел (и тут косяк , в ячейках остается "Длина" и Ширина", а должна остаться формула, как в 11 строке и эта формула при пустом значении в ячейке В10 выдает пустые значения или размер при значении из именованного диапазона)
Изменено: ivponomarev - 14.08.2016 22:53:15
Обращение к именованному диапазону через макрос
 
Столбец U - название именованного диапазона в котором находится значение из B7:B30
Столбец V - это длина материала
Столбец W - это ширина материала
Из V и W подставляется в С и D соответственно если условие этого требует.

Так VBA для меня почти темный лес делаю доступными для меня формулами, поэтому и такое награмождение данных.
Изменено: ivponomarev - 14.08.2016 22:29:51
Обращение к именованному диапазону через макрос
 
Ну вот такая задумка, в идеале там и шапка в зависимости от типа материала меняется, но пока так как есть.
Например ед.изм будет либо "Лист", либо "м2", либо "шт."
Изменено: ivponomarev - 14.08.2016 22:21:12
Обращение к именованному диапазону через макрос
 
Юрий М, приложил рабочий файл
В кратце смысл:
В столбце B7:B30 выбирается наименование материала (ЛДСП, ДВП и т.д.). Условие: Если выбрано наименование материала, то в следующих столбцах макросом отображается шапка (Длина, Ширина, Кол-во, Цена и т.д.)
В следующей строке в тех же ячейках B7:B30, после выбранного типа материала, выбирается цвет. И вот тут должно выполнится условие, если не тип материала, то в следующих столбцах подставляется формула которая из ячейки V7, V8, V9 ..... берет значение ширина или длина и второе условие если ничего нет в ячейке B7:B30 то ячейка пустая.

Как для этого сделать файл пример я просто не знаю и объяснить проще тоже представляется затруднительным  :sceptic:
Изменено: ivponomarev - 14.08.2016 21:49:39
Обращение к именованному диапазону через макрос
 
Юрий М, я извиняюсь за большой объем вопросов, но если не трудно подскажите ещё одну вещь.

Если значение соответствует диапазону, то = "Длина", а если не соответствует, то формула =ЕСЛИ(ЕЧИСЛО($A7);V7;"")
$A7и V7 в каждой строчке имеет своё значение, всмысле $A8 и V8, $A9 и V9 и т.д.
Код
If Not Intersect(Target, [B7:B30]) Is Nothing Then Set Rng = Sheets("Что").Range("Наименование").Find(what:=Target, LookIn:=xlValues, lookAt:=xlWhole)
If Not Rng Is Nothing Then Target.Offset(0, 1) = "Длина"
Изменено: ivponomarev - 14.08.2016 11:32:08
Обращение к именованному диапазону через макрос
 
Юрий М, примного благодарен :) всё работает.

P.S. Извиняюсь за утреннее поведение  :oops:
Изменено: ivponomarev - 13.08.2016 21:05:55
Обращение к именованному диапазону через макрос
 
Знать бы ещё как  :oops:
Страницы: 1 2 3 След.
Наверх