Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Создание именованного диапазона - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Создание именованного диапазона
yuka Дата: Вторник, 27.11.2012, 11:27 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 94
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Добрый день!
Имеется прайс. Из которого необходимо сделать электронное формирование спецификации. Т.е. Имена групп и подгрупп должны быть связаны с основными позициями прайса. Файл во вложении, надеюсь задача будет понятна. К сожалению я никак не могу понять, как работают функции СМЕЩ(), ДВССЫЛ(), ВПР(). Точнее в ВПР я более или менее разобралась и то не до конца.
К сообщению приложен файл: 6543220.xlsx (10.4 Kb)
 
Ответить
СообщениеДобрый день!
Имеется прайс. Из которого необходимо сделать электронное формирование спецификации. Т.е. Имена групп и подгрупп должны быть связаны с основными позициями прайса. Файл во вложении, надеюсь задача будет понятна. К сожалению я никак не могу понять, как работают функции СМЕЩ(), ДВССЫЛ(), ВПР(). Точнее в ВПР я более или менее разобралась и то не до конца.

Автор - yuka
Дата добавления - 27.11.2012 в 11:27
yuka Дата: Вторник, 27.11.2012, 13:45 | Сообщение № 2
Группа: Пользователи
Ранг: Участник
Сообщений: 94
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
я понимаю, что это работа не 5 минут)). Сама когда-то на Delphi делала подобную сортировку данных. Только там в разы это проще, чем не зная как это делать сейчас.

Может вопрос по-проще...
Возможно ли макросом при просмотре всех данных сделать именованные диапазоны? Только в третьем уровне (т.е. по моему файлу: {Текст 1; Текст 2; Текст; и т.д.}? Как это сделать? Будут ли они динамическими?


Сообщение отредактировал yuka - Вторник, 27.11.2012, 13:51
 
Ответить
Сообщениея понимаю, что это работа не 5 минут)). Сама когда-то на Delphi делала подобную сортировку данных. Только там в разы это проще, чем не зная как это делать сейчас.

Может вопрос по-проще...
Возможно ли макросом при просмотре всех данных сделать именованные диапазоны? Только в третьем уровне (т.е. по моему файлу: {Текст 1; Текст 2; Текст; и т.д.}? Как это сделать? Будут ли они динамическими?

Автор - yuka
Дата добавления - 27.11.2012 в 13:45
Alex_ST Дата: Вторник, 27.11.2012, 14:36 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
yuka,
1. Вы просите МАКРОСОМ, а выкладываете файл XLSX biggrin А вообще-то лучше бы в XLS выложили - больше было бы пытающихся помочь.
2. Посмотреть внимательно Ваш файл не могу (на работе сейчас завал, а дома только Офис-2003), но могу посоветовать посмотреть про создание выпадающих списков на очень полезном ресурсе Что умеет Excel



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщениеyuka,
1. Вы просите МАКРОСОМ, а выкладываете файл XLSX biggrin А вообще-то лучше бы в XLS выложили - больше было бы пытающихся помочь.
2. Посмотреть внимательно Ваш файл не могу (на работе сейчас завал, а дома только Офис-2003), но могу посоветовать посмотреть про создание выпадающих списков на очень полезном ресурсе Что умеет Excel

Автор - Alex_ST
Дата добавления - 27.11.2012 в 14:36
yuka Дата: Вторник, 27.11.2012, 14:48 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 94
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
извиняюсь...
К сообщению приложен файл: 5534813.xls (30.0 Kb)
 
Ответить
Сообщение извиняюсь...

Автор - yuka
Дата добавления - 27.11.2012 в 14:48
Hugo Дата: Вторник, 27.11.2012, 14:48 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3691
Репутация: 790 ±
Замечаний: 0% ±

365
Я вообще не понимаю в деталях задачу - что имеем, что нужно получить.
Но если есть опыт на Delphi, то почему бы не делать макросом? Алгоритм ведь вероятно можно использовать один?
Я вижу так сразу два варианта - или словарь словаря в словаре smile , или перебор значений типа "1|2|3|4" и создание динамического словаря, из которого даём выбирать юзеру.
Т.е. есть массив 70 строк - сперва показываем уникальные первые части, после выбора показываем уникальные вторые, с условием что первая=выбранная, далее аналогично.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеЯ вообще не понимаю в деталях задачу - что имеем, что нужно получить.
Но если есть опыт на Delphi, то почему бы не делать макросом? Алгоритм ведь вероятно можно использовать один?
Я вижу так сразу два варианта - или словарь словаря в словаре smile , или перебор значений типа "1|2|3|4" и создание динамического словаря, из которого даём выбирать юзеру.
Т.е. есть массив 70 строк - сперва показываем уникальные первые части, после выбора показываем уникальные вторые, с условием что первая=выбранная, далее аналогично.

Автор - Hugo
Дата добавления - 27.11.2012 в 14:48
yuka Дата: Вторник, 27.11.2012, 15:31 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 94
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Quote
Я вообще не понимаю в деталях задачу - что имеем, что нужно получить.
Но если есть опыт на Delphi, то почему бы не делать макросом? Алгоритм ведь вероятно можно использовать один?

Да, алгоритм можно использовать один... но в Delphi я работала с таблицами и отфильтровывала таблицу по данному значению. Возможно здесь можно это сделать, но плохо знаю команды VBA, в них еще ведутся "раскопки" smile Тут есть список, нет таблиц. Т.е. отсортировать значения по выбранному полю я не знаю как.

Quote
Т.е. есть массив 70 строк - сперва показываем уникальные первые части, после выбора показываем уникальные вторые, с условием что первая=выбранная, далее аналогично.

Да, это и надо сделать.... Но у меня не фиксированное значение строк. И потом как создать из уникальных первых частей список без пустых строк?
 
Ответить
Сообщение
Quote
Я вообще не понимаю в деталях задачу - что имеем, что нужно получить.
Но если есть опыт на Delphi, то почему бы не делать макросом? Алгоритм ведь вероятно можно использовать один?

Да, алгоритм можно использовать один... но в Delphi я работала с таблицами и отфильтровывала таблицу по данному значению. Возможно здесь можно это сделать, но плохо знаю команды VBA, в них еще ведутся "раскопки" smile Тут есть список, нет таблиц. Т.е. отсортировать значения по выбранному полю я не знаю как.

Quote
Т.е. есть массив 70 строк - сперва показываем уникальные первые части, после выбора показываем уникальные вторые, с условием что первая=выбранная, далее аналогично.

Да, это и надо сделать.... Но у меня не фиксированное значение строк. И потом как создать из уникальных первых частей список без пустых строк?

Автор - yuka
Дата добавления - 27.11.2012 в 15:31
yuka Дата: Вторник, 27.11.2012, 15:39 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 94
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Потом, если, коли не получится сделать "идеально" с первым моим вопросом
Quote
сперва показываем уникальные первые части, после выбора показываем уникальные вторые, с условием что первая=выбранная, далее аналогично.
, может попробовать создать наподобие того, что я хочу: вывести оглавление прайса и под заголовками конечного уровня создать раскрывающиеся списки.

.... только в последнем случае, придется искать начало группы, конец группы, присваивать имя диапазону, а потом каким-то макаром указывать это имя для раскрывающегося списка....

Уфф... честно говоря мозг взрывается уже...))) wacko
 
Ответить
СообщениеПотом, если, коли не получится сделать "идеально" с первым моим вопросом
Quote
сперва показываем уникальные первые части, после выбора показываем уникальные вторые, с условием что первая=выбранная, далее аналогично.
, может попробовать создать наподобие того, что я хочу: вывести оглавление прайса и под заголовками конечного уровня создать раскрывающиеся списки.

.... только в последнем случае, придется искать начало группы, конец группы, присваивать имя диапазону, а потом каким-то макаром указывать это имя для раскрывающегося списка....

Уфф... честно говоря мозг взрывается уже...))) wacko

Автор - yuka
Дата добавления - 27.11.2012 в 15:39
Hugo Дата: Вторник, 27.11.2012, 15:49 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3691
Репутация: 790 ±
Замечаний: 0% ±

365
Так Вы пока не сказали предельно ясно - что есть, что нужно получить.
Если есть конкретный диапазон с дырами - нужно как-то перебором эти дыры в массиве данных заполнить.
Или проще это сделать вручную на листе.
Я бы сделал на листе, вручную smile


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеТак Вы пока не сказали предельно ясно - что есть, что нужно получить.
Если есть конкретный диапазон с дырами - нужно как-то перебором эти дыры в массиве данных заполнить.
Или проще это сделать вручную на листе.
Я бы сделал на листе, вручную smile

Автор - Hugo
Дата добавления - 27.11.2012 в 15:49
yuka Дата: Вторник, 27.11.2012, 16:28 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 94
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
о-о... я буду долго поминать свое обучение в школе, обучение правильно строить фразы и предложения так, чтобы меня поняли))))

Я чуть-чуть подкорректировала свой файл.
К сообщению приложен файл: 8566493.xls (37.0 Kb)
 
Ответить
Сообщениео-о... я буду долго поминать свое обучение в школе, обучение правильно строить фразы и предложения так, чтобы меня поняли))))

Я чуть-чуть подкорректировала свой файл.

Автор - yuka
Дата добавления - 27.11.2012 в 16:28
nilem Дата: Вторник, 27.11.2012, 18:22 | Сообщение № 10
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Вот такой вариант: начальн. список в Н3 создается кнопкой ("i"), а списки в I3, J3, K3 формируются в завис-ти от выбранного знач-я в H3, I3, J3 соотв-но.
К сообщению приложен файл: _8566493-1.xls (55.5 Kb)


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеВот такой вариант: начальн. список в Н3 создается кнопкой ("i"), а списки в I3, J3, K3 формируются в завис-ти от выбранного знач-я в H3, I3, J3 соотв-но.

Автор - nilem
Дата добавления - 27.11.2012 в 18:22
AlexM Дата: Вторник, 27.11.2012, 20:50 | Сообщение № 11
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Еще вариант.
К сообщению приложен файл: 7452895.xls (34.0 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеЕще вариант.

Автор - AlexM
Дата добавления - 27.11.2012 в 20:50
yuka Дата: Среда, 28.11.2012, 12:27 | Сообщение № 12
Группа: Пользователи
Ранг: Участник
Сообщений: 94
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Quote (nilem)
Вот такой вариант: начальн. список в Н3 создается кнопкой ("i"), а списки в I3, J3, K3 формируются в завис-ти от выбранного знач-я в H3, I3, J3 соотв-но.

Спасибо огромное! Задача выполняется так, как мне надо, но есть кое-какие вопросы. Есть ли возможность на них ответить?
На крайний случай, мы не найдем на них ответы, буду дорабатывать то, что есть.

1. Т.к. работа с прайсом, то есть артикулы. Артикулы почему-то в ниспадающем списке пишутся в следующую строчку, можно ли записать их вместе с позицией?
2. Есть ли возможность разнести создание спецификации и сам прайс на разные листы книги? Что необходимо изменить в кодах макросов, чтобы все также работало после переноса?

Про команды макросов, которые мне непонятны спрашивать пока не буду...))) А то это уже совсем другая история получится.
 
Ответить
Сообщение
Quote (nilem)
Вот такой вариант: начальн. список в Н3 создается кнопкой ("i"), а списки в I3, J3, K3 формируются в завис-ти от выбранного знач-я в H3, I3, J3 соотв-но.

Спасибо огромное! Задача выполняется так, как мне надо, но есть кое-какие вопросы. Есть ли возможность на них ответить?
На крайний случай, мы не найдем на них ответы, буду дорабатывать то, что есть.

1. Т.к. работа с прайсом, то есть артикулы. Артикулы почему-то в ниспадающем списке пишутся в следующую строчку, можно ли записать их вместе с позицией?
2. Есть ли возможность разнести создание спецификации и сам прайс на разные листы книги? Что необходимо изменить в кодах макросов, чтобы все также работало после переноса?

Про команды макросов, которые мне непонятны спрашивать пока не буду...))) А то это уже совсем другая история получится.

Автор - yuka
Дата добавления - 28.11.2012 в 12:27
yuka Дата: Среда, 28.11.2012, 12:36 | Сообщение № 13
Группа: Пользователи
Ранг: Участник
Сообщений: 94
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
файл
К сообщению приложен файл: _8566493-1.zip (51.2 Kb)
 
Ответить
Сообщениефайл

Автор - yuka
Дата добавления - 28.11.2012 в 12:36
nilem Дата: Среда, 28.11.2012, 13:24 | Сообщение № 14
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Артикулы пишутся в отдельную строку, потому что они отделены запятой (ну, такой подход в макросе). Можно заменить запятые на, например, пробелы вот так:
[vba]
Code
Sub rty()
Range("A1").CurrentRegion.Replace ",", " ", 2
End Sub
[/vba]
И еще нюанс. Длина строки s (в коде Formula1:=s) не м.б. более 255 символов (для Е2003).
Т.е., если отсутствие запятых в тексте и длина строки в раср. списках не критичны, то можно оставить, как есть. Иначе нужно будет использовать комбобоксы - с ними можно разгуляться, как хошь smile
ПС Удалите имена в Вашем файле, размер немного сократится.
К сообщению приложен файл: 2718038.xls (58.0 Kb)


Яндекс.Деньги 4100159601573

Сообщение отредактировал nilem - Среда, 28.11.2012, 13:24
 
Ответить
СообщениеАртикулы пишутся в отдельную строку, потому что они отделены запятой (ну, такой подход в макросе). Можно заменить запятые на, например, пробелы вот так:
[vba]
Code
Sub rty()
Range("A1").CurrentRegion.Replace ",", " ", 2
End Sub
[/vba]
И еще нюанс. Длина строки s (в коде Formula1:=s) не м.б. более 255 символов (для Е2003).
Т.е., если отсутствие запятых в тексте и длина строки в раср. списках не критичны, то можно оставить, как есть. Иначе нужно будет использовать комбобоксы - с ними можно разгуляться, как хошь smile
ПС Удалите имена в Вашем файле, размер немного сократится.

Автор - nilem
Дата добавления - 28.11.2012 в 13:24
yuka Дата: Среда, 28.11.2012, 15:44 | Сообщение № 15
Группа: Пользователи
Ранг: Участник
Сообщений: 94
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Спасибо!
Столкнулась с такой проблемой,
1) если к примеру нет третьего уровня заголовков, скажем: "Заголовок 2.1.1 ", то самый нижний подуровень не заполняется. Возможно ли с этим что-то делать? Отсутствовать может только заголовок 3 уровня.
Я чуть изменила код листа

[vba]
Code
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("B:E")) Is Nothing Then Exit Sub
If Target.Value = vbNullString Then Exit Sub
Dim r As Range, s$
With Sheets("Лист1").Columns(Target.Column - 1).Find(Target.Value, LookAt:=xlWhole)
     Set r = Intersect(Sheets("Лист1").UsedRange, Sheets("Лист1").Range(.Item(1), .Item(1).End(xlDown))).Offset(, 1)
End With

s = F_conc_col_noblanks_sep_snb(r, ",")

With Target.Next
    If Target.Column = 5 Then Exit Sub
     .Value = ""
     With .Validation
         .Delete
         If s <> vbNullString Then .Add Type:=xlValidateList, Formula1:=s
     End With
End With

End Sub
[/vba]
Необходимо добавить условие на проверку, чтобы миновать 3 столбец и пустую переменную s и не завершая программы перейти на 5 столбец. Как это сделать?


Сообщение отредактировал yuka - Среда, 28.11.2012, 17:11
 
Ответить
СообщениеСпасибо!
Столкнулась с такой проблемой,
1) если к примеру нет третьего уровня заголовков, скажем: "Заголовок 2.1.1 ", то самый нижний подуровень не заполняется. Возможно ли с этим что-то делать? Отсутствовать может только заголовок 3 уровня.
Я чуть изменила код листа

[vba]
Code
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("B:E")) Is Nothing Then Exit Sub
If Target.Value = vbNullString Then Exit Sub
Dim r As Range, s$
With Sheets("Лист1").Columns(Target.Column - 1).Find(Target.Value, LookAt:=xlWhole)
     Set r = Intersect(Sheets("Лист1").UsedRange, Sheets("Лист1").Range(.Item(1), .Item(1).End(xlDown))).Offset(, 1)
End With

s = F_conc_col_noblanks_sep_snb(r, ",")

With Target.Next
    If Target.Column = 5 Then Exit Sub
     .Value = ""
     With .Validation
         .Delete
         If s <> vbNullString Then .Add Type:=xlValidateList, Formula1:=s
     End With
End With

End Sub
[/vba]
Необходимо добавить условие на проверку, чтобы миновать 3 столбец и пустую переменную s и не завершая программы перейти на 5 столбец. Как это сделать?

Автор - yuka
Дата добавления - 28.11.2012 в 15:44
yuka Дата: Четверг, 29.11.2012, 09:50 | Сообщение № 16
Группа: Пользователи
Ранг: Участник
Сообщений: 94
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Помогите, пожалуйста с кодом....
К сообщению приложен файл: 9127429.xls (74.0 Kb)
 
Ответить
СообщениеПомогите, пожалуйста с кодом....

Автор - yuka
Дата добавления - 29.11.2012 в 09:50
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!