Добрый день. Столкнулся с определенной сложностью в ходе разработки файла excel, для автоматизации документооборота в компании: существует столбец, в котором поочередно идут 12 позиций, начиная наименованием организации, инн, кпп и т.д. выглядит это примерно так- ООО "Компания" 7722760000 771202002 40702810000000000000 эти данные я объединяю с помощью диспетчера имен в определенный диапазон, который соответственно имеет определенное имя. Задача следующая: в одной ячейке будет выпадающий список, в котором будут содержаться те самые имена, под которыми подразумеваются определенные области, и соответственно при выборе этого определенного имени, те данные которые подразумевались под этим именем, будут вставлены в другую области, строго фиксированную, в которой так же будет 12 ячеек, в которые те 12. сори если коряво написано
Добрый день. Столкнулся с определенной сложностью в ходе разработки файла excel, для автоматизации документооборота в компании: существует столбец, в котором поочередно идут 12 позиций, начиная наименованием организации, инн, кпп и т.д. выглядит это примерно так- ООО "Компания" 7722760000 771202002 40702810000000000000 эти данные я объединяю с помощью диспетчера имен в определенный диапазон, который соответственно имеет определенное имя. Задача следующая: в одной ячейке будет выпадающий список, в котором будут содержаться те самые имена, под которыми подразумеваются определенные области, и соответственно при выборе этого определенного имени, те данные которые подразумевались под этим именем, будут вставлены в другую области, строго фиксированную, в которой так же будет 12 ячеек, в которые те 12. сори если коряво написаноsniperganger
область с реквизитами закрепилась, т.е при вводе любую в ячейку листа комбинации "=название_закрепленного_диапазона", эксель предлагает дописать существующее имя, но выдается ошибка "ЗНАЧ" вопрос в том как связать выпадающий список, в котором будут написаны наименования компаний, каждое из которых соотвеnственно будет подразумевать под собой определенную область в листе и эту область вставлять в определенный диапазон? создав выпадающий список и выбирая в нем разные пункты, я пытался отследить как эксель записывает макросом эти действия, но к сожалению в макросе отобразилось следующее:
[/vba] повторюсь, основная задача сделать выпадающий список, в определенной ячейке, допустим А1, в списке будет перечень названий компаний, который находится на том же листе где и реквизиты допустим ниже начиная с ячейки А20:A31 компания наименование и реквизиты, дальше идет пробел и следующая компания наименование и реквизиты(А33:A44) и т.д., в совокупности отдельные названия и соответствующие им реквизиты и закреплены с помощью функции диспетчер имен, при выборе определенной компании в выпадающем списке, либо какой-то формулой либо макросом должно активироваться копирование выбранного имени( со всеми полагающимися закрепленными данными диапазона) и так же по порядку как и изначально закреплены вставляться в область (а3:а14), если выбирается в выпадающем списке другое наименование, то соответственно копируется то из диспетчера имен и закрепленный за этим именем диапазон, и так же вставляется в диапазон (а3:а14)
VBA отлично воспринимает эти имена если написать что-то вроде: [vba]
но как сделать так чтобы это условие выполнялось при выборе определенной позиции в выпадающем списке, ума не приложу... если есть какие-то соображение, подскажите пожалуйста.
[admin]Оформляйте коды тегами![/admin]
область с реквизитами закрепилась, т.е при вводе любую в ячейку листа комбинации "=название_закрепленного_диапазона", эксель предлагает дописать существующее имя, но выдается ошибка "ЗНАЧ" вопрос в том как связать выпадающий список, в котором будут написаны наименования компаний, каждое из которых соотвеnственно будет подразумевать под собой определенную область в листе и эту область вставлять в определенный диапазон? создав выпадающий список и выбирая в нем разные пункты, я пытался отследить как эксель записывает макросом эти действия, но к сожалению в макросе отобразилось следующее:
[/vba] повторюсь, основная задача сделать выпадающий список, в определенной ячейке, допустим А1, в списке будет перечень названий компаний, который находится на том же листе где и реквизиты допустим ниже начиная с ячейки А20:A31 компания наименование и реквизиты, дальше идет пробел и следующая компания наименование и реквизиты(А33:A44) и т.д., в совокупности отдельные названия и соответствующие им реквизиты и закреплены с помощью функции диспетчер имен, при выборе определенной компании в выпадающем списке, либо какой-то формулой либо макросом должно активироваться копирование выбранного имени( со всеми полагающимися закрепленными данными диапазона) и так же по порядку как и изначально закреплены вставляться в область (а3:а14), если выбирается в выпадающем списке другое наименование, то соответственно копируется то из диспетчера имен и закрепленный за этим именем диапазон, и так же вставляется в диапазон (а3:а14)
VBA отлично воспринимает эти имена если написать что-то вроде: [vba]
но как сделать так чтобы это условие выполнялось при выборе определенной позиции в выпадающем списке, ума не приложу... если есть какие-то соображение, подскажите пожалуйста.
[admin]Оформляйте коды тегами![/admin]sniperganger
вот примерно так... только выпадающий список сварганил не из заголовков тех диапазонов ячеек где забиты реквизиты, а из ячеек что ниже, т.к. ругается эксель на выбор определенных фрагментов
вот примерно так... только выпадающий список сварганил не из заголовков тех диапазонов ячеек где забиты реквизиты, а из ячеек что ниже, т.к. ругается эксель на выбор определенных фрагментовsniperganger
Как сделать, как сделать... Хранить данные как положено, а не как вам взбрело в голову. Вот скажите - в чём глубинный смысл хранения с разбивкой именно так - в один столбец, но по 12 строк? Откуда взялось именно такое?
Как сделать, как сделать... Хранить данные как положено, а не как вам взбрело в голову. Вот скажите - в чём глубинный смысл хранения с разбивкой именно так - в один столбец, но по 12 строк? Откуда взялось именно такое?AndreTM
в приложенном файле не 12 строк, я просто для примера сделал в один столбец потому что в том файле где на самом деле все это должно сработать по горизонтали реквизиты вставить нельзя, в общем все должно быть строго в столбик это невозможно?
в приложенном файле не 12 строк, я просто для примера сделал в один столбец потому что в том файле где на самом деле все это должно сработать по горизонтали реквизиты вставить нельзя, в общем все должно быть строго в столбик это невозможно?sniperganger
в том файле где на самом деле все это должно сработать по горизонтали реквизиты вставить нельзя, в общем все должно быть строго в столбик это невозможно?
Сделать-то возможно всё, и даже можно сделать всё формулами. Но извечный вопрос архитектора"защем вопще?" не даёт мне покоя... Если нельзя расположить реквизиты по горизонтали там, где они находятся (кстати, это вам никто делать и не предлагает: исходные данные априори должны считаться read-only) - то кто вам запрещает расположить данные так, как нужно - в другом месте (вам слово "парсинг" знакомо)? Ведь формулы-то вы собираетесь куда-то вводить - значит, где-то все же есть место, где вы управляете расположением данных...
Тема-то изначально называется "Оптимизация...", а не "Автоматизация..."
Цитата (sniperganger)
в том файле где на самом деле все это должно сработать по горизонтали реквизиты вставить нельзя, в общем все должно быть строго в столбик это невозможно?
Сделать-то возможно всё, и даже можно сделать всё формулами. Но извечный вопрос архитектора"защем вопще?" не даёт мне покоя... Если нельзя расположить реквизиты по горизонтали там, где они находятся (кстати, это вам никто делать и не предлагает: исходные данные априори должны считаться read-only) - то кто вам запрещает расположить данные так, как нужно - в другом месте (вам слово "парсинг" знакомо)? Ведь формулы-то вы собираетесь куда-то вводить - значит, где-то все же есть место, где вы управляете расположением данных...
Тема-то изначально называется "Оптимизация...", а не "Автоматизация..."AndreTM
Skype: andre.tm.007 Donate: Qiwi: 9517375010
Сообщение отредактировал AndreTM - Пятница, 07.06.2013, 16:59
Действительно, почему исходные данные по компании не расположить в строку? Тогда названия будут рядом в столбце, прямо их и можно использовать в выпадающем списке, а в целевом диапазоне тянуть всё по названию хоть ВПРом. И пополнять легко и понятно - каждой спецификации свой столбец, не спутаете. Вот на Ваших данных - но они в общем не нужны
Действительно, почему исходные данные по компании не расположить в строку? Тогда названия будут рядом в столбце, прямо их и можно использовать в выпадающем списке, а в целевом диапазоне тянуть всё по названию хоть ВПРом. И пополнять легко и понятно - каждой спецификации свой столбец, не спутаете. Вот на Ваших данных - но они в общем не нужны Hugo
Спасибо за помощь! Все-таки вариант с вертикальным списком мне больше подходит. Дело за малым, осталось в сделать так чтобы в область вставки вставлялись значения, ну это вприципе я наверное и сам доделаю. Еще раз всем спасибо.
Спасибо за помощь! Все-таки вариант с вертикальным списком мне больше подходит. Дело за малым, осталось в сделать так чтобы в область вставки вставлялись значения, ну это вприципе я наверное и сам доделаю. Еще раз всем спасибо.sniperganger
И чем он удобнее? Если тем, что так откуда-то копипастите - так напишите макрос, который такой диапазон транспонирует в строку, по одной на компанию. Если копировать по одной компании - то и макрос не нужен, спецвставка с транспонированием справится. Зато если по одной строке - можно легко с этим списком делать что угодно - менять, фильтровать, дополнять... С Вашим столбцом что ни возьми - всё неудобно.
И чем он удобнее? Если тем, что так откуда-то копипастите - так напишите макрос, который такой диапазон транспонирует в строку, по одной на компанию. Если копировать по одной компании - то и макрос не нужен, спецвставка с транспонированием справится. Зато если по одной строке - можно легко с этим списком делать что угодно - менять, фильтровать, дополнять... С Вашим столбцом что ни возьми - всё неудобно.Hugo