Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2009, 18:56   #1
Tirendus
Форумчанин
 
Аватар для Tirendus
 
Регистрация: 20.03.2009
Сообщений: 272
Вопрос нужна помощь с макросом

Извиняюсь, но такого в поиске нет, а дать "уникальное имя" своему посту, следуя правилам форума просто нет возможности.

я только начал учить VBA, потому не знаю что и как делаеться (читаю ВБА для чайников ).

есть у меня один клиент, требования по обработки данных у которого очень тяжелые (если не написать соответствующий макрос конечно), как-то попробовал всё сделать вручную, на 1 это задание ушло полтора дня. Хотелось бы его немного сократить.

В чём, собственно, проблема.

Есть допустим 10 картинок (по правде их гораздо больше), нужно создать 2 файла.. один нужно создавать ручками - это 100%, потому, что нужно давать описания, взятые из головы, да и файл лёгкий и он может очень помочь при составлении макроса.

Извиняюсь за небольшое отступление. В общем остается 1 файл, для которого собственно и нужно написать макрос. Сейчас постараюсь описать все действия, что нужно сделать:
1) Каждая картинка должна быть 28 форматах написания (там меняются только размеры и иногда имя папки, возможно нужно указать какую-то закономерность);
2)каждые 24-28 строки - это превью файлы, потому их папка называется превью.. если можно указать какую-то последовательность, при которой имена папок должны меняться, было бы здорово;
3) В файле, который я тут закреплю, я покажу как я это делал руками и как оно должно выглядеть в идеале.
4) в первом файле, о котором я говорил, есть по крайней мере 1 строчка, которая должна быть в файле в котором мне хотелось бы использовать макрос каждые 28 строк - это название картинки, потому было бы замечательно их связать.
5) в файле есть url ссылка на каждый файл в каждой папке, думаю если указать в макросе, что он должен склепать имена урл из нескольких ячеек, будет неплохо смотреться... Потом просто сделать специальную вставку всего столбца.
6) + просто косметика (это если всё таки такой файл создавабелен), нужно что б начиная со 2 по 29 все ячейки в строках были залиты каким-то не режущим глаза цветом.. серым например.. потом 30-58 другим цветом.. например желтым и так чередовались до последней заполненной строки.
Но конечно самым главным являются ячейки с урл-ссылкой

имя 1 файла - простая_описаловка.xls
имя 2 файла (нужного) - подробная_описаловка.xls

в общем, если кто осилит, то уже за это буду благодарен)
Вложения
Тип файла: zip opisalovki.zip (9.8 Кб, 17 просмотров)
Tirendus вне форума Ответить с цитированием
Старый 10.04.2009, 23:25   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Цитата:
в общем, если кто осилит
Не осилил Описание большое, но сути я так и не уловил.

Сделать макрос вполне реально, но что должен делать этот макрос, я не понял.
Что может делать макрос с картинками:
1) считать из выбранной папки список файлов-картинок
2) для каждой из найденных картинок:
добавить на лист её путь (или имя файла), размер (например, 120x160), формат (например, GIF), гиперссылку на файл, вставить изображение в ячейку (или в примечание к ячейке)

Цитата:
нужно что б начиная со 2 по 29 все ячейки в строках были залиты каким-то не режущим глаза цветом.. серым например.. потом 30-58 другим цветом.. например желтым и так чередовались до последней заполненной строки.
Раскрасить ячейки совсем несложно.

Постарайтесь более подробно описать задание, не забыв прикрепить папку с картинками (хотя бы штук 5 картинок), и на примере файла показать, что должен делать макрос.
Например:
макрос находит в указанной папке очередную картинку, вставляет её изображение в ячейку h3, на эту картинку устанавливает гиперссылку, ведущую туда-то, в столбцы J и K той же строки заносятся такие-то параметры файла.

Тогда у Вас будет шанс получить готовое решение.
EducatedFool вне форума Ответить с цитированием
Старый 10.04.2009, 23:48   #3
Tirendus
Форумчанин
 
Аватар для Tirendus
 
Регистрация: 20.03.2009
Сообщений: 272
По умолчанию

Большое спасибо за отзыв.

Вообще это не совсем то, чего я хотел, с картинками вообще никаких действий не планировалось делать.. просто вставить урл ссылки по схеме. Но такая идея кажеться мне намного лучшей моей.

Попробую по вашему совету

Макрос находит в очередной папке картинку, найдя картинку с определенным названием (а во всех 28 папках они называются одинаково), макрос начинает поиск этой же картинки по остальным 27 папкам, возвращая урл ссылку в нужный столбец, начиная со второй ячейки, затем переходит к следущей картинке.

Цитата:
Раскрасить ячейки совсем несложно.
не могу с вами согласиться... один раз этот клиент запросил 200 картинок, что в совокупности оказалось около 5.5 тыс картинок.

Дома примера нет (именно картинок) и сделать его заняло бы сейчас довольно обьемное количество времени, но если без них действительно никак, то я сделаю. А так пока выставлю пример расположения папок
Вложения
Тип файла: zip example.zip (3.7 Кб, 13 просмотров)
Tirendus вне форума Ответить с цитированием
Старый 11.04.2009, 00:18   #4
Tirendus
Форумчанин
 
Аватар для Tirendus
 
Регистрация: 20.03.2009
Сообщений: 272
По умолчанию

хм, странно не могу залить архив сюда, выдает что-то вроде ошибки 404... разве что так

http://rapidshare.com/files/219809184/example1.zip.html
Tirendus вне форума Ответить с цитированием
Старый 11.04.2009, 01:04   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

По поводу раскраски ячеек зря Вы со мной не соглашаетесь
Вручную, конечно же, нереально, а вот макрос справится с этим легко - раскрасит всё за долю секунды...

Цитата:
Макрос находит в очередной папке картинку, найдя картинку с определенным названием (а во всех 28 папках они называются одинаково), макрос начинает поиск этой же картинки по остальным 27 папкам, возвращая урл ссылку в нужный столбец, начиная со второй ячейки, затем переходит к следущей картинке.
С таким описанием задачи помочь Вам будет сложновато.
Полгода уйдет на разъяснения и пояснения...

1) Макрос находит в очередной папке картинку - в какой папке перебирать все картинки? Какая из папок является основной?

2) возвращая урл ссылку - а что это за формат ссылки - file://original/96x65/asdes.gif ? У меня эти ссылки не открываюся... ну да ладно - тут можно что-нибудь придумать.

3) Во втором столбце есть записи вроде:
Цитата:
Море, Рыбки
Фигня, Какая-то
Рисунок, Просто рисунок
Злобный вампир, Рубит направо и налево
Боюсь, что макросу будет сложновато распознать изображения на картинках, и сформировать для них подобное описание... В связи с этим вопрос - откуда брать это описание?
Или мы в первой строке текущего рисунка макросом пишем случайный текст, а в строки ниже - формулы со ссылкой на эту ячейку?
В этом случае вам будет достаточно заменить описание в первой строке, чтобы оно автоматически поменялось во всех строках описания данного рисунка.

4) Не понял - саму картинку надо куда-нибудь вставлять?
Если надо - то какую из 28-ми одинаковых?
EducatedFool вне форума Ответить с цитированием
Старый 11.04.2009, 01:49   #6
Tirendus
Форумчанин
 
Аватар для Tirendus
 
Регистрация: 20.03.2009
Сообщений: 272
По умолчанию

Цитата:
По поводу раскраски ячеек зря Вы со мной не соглашаетесь
Вручную, конечно же, нереально, а вот макрос справится с этим легко - раскрасит всё за долю секунды...
Я думал вы говорите, что руками легко

С картинками ровным счётом ничего не надо делать... они уже сделаны и готовы к отправке,всё что нужно - подробная описаловка.. нужно что б макрос взял описания картинок (которые я сам напишу руками) из простой описаловки и запихал в подробную описаловку. Описание в простой описаловке - это графа "Название" и нужно их вставить в поле "name" в подробной

Вообще изначально я предлогал сделать всё, используя некий алгоритм.. если вас не затруднит заново просмотреть первый выложенный мной пример, я объясню.

Я использовал там такую формулу для заполнения урл-ячеек - ="file://"&$M$3&"/"&J2&"/"&$O$5,
где M3 и N3- это папки - оригинал и превью соответственно...
J2 - это размеры (128х128) и О5 - это имя нужного файла
каждая 25-28 папка - это превью и картинки находяться в папке превью, потому урл нужно давать на неё каждый 25,26,27,28. а потом снова урл на обычную... мб можно как-то использовать те корявые куски формулы, что у меня в документе ="file://"&$M$3&"/"&J2&"/"&$O$5.

Допустим сделать эту формулу повторяющейся каждые 24 раза, потом взять формулу ="file://"&$N$3&"/"&J2&"/"&$O$5, и воспроизвести её для 4 оставшихся ячеек. а потом сделать формулу по второму кругу, но уже для следующей картинки.. примерно так ="file://"&$N$3&"/"&J2&"/"&$O$6

Цитата:
У меня эти ссылки не открываюся
Честно говоря, у меня тоже... но клиент доволен как мужик после бани, потому нужны именно такие неработающие урл

Последний раз редактировалось Tirendus; 11.04.2009 в 01:53.
Tirendus вне форума Ответить с цитированием
Старый 11.04.2009, 02:10   #7
Tirendus
Форумчанин
 
Аватар для Tirendus
 
Регистрация: 20.03.2009
Сообщений: 272
По умолчанию

я конечно не хочу показаться навязчивым, объясняю я похоже туго, но у меня есть скайп, я мог бы объяснить в нём более понятным языком, нежели тут... ник tirendus
Tirendus вне форума Ответить с цитированием
Старый 11.04.2009, 02:10   #8
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Цитата:
но клиент доволен как мужик после бани, потому нужны именно такие неработающие урл
Не первый день пишу макросы, но такое оригинальное задание встречаю впервые...
А что, работающие ссылки Вас не устроят?????

Сейчас попробую сделать макрос.
Часа через два будут результаты.

Цитата:
но у меня есть скайп, я мог бы объяснить в нём более понятным языком
С этого и надо было начинать. сейчас позвоню
EducatedFool вне форума Ответить с цитированием
Старый 11.04.2009, 03:40   #9
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

1)Добавь файл из вложения в ту же папку, где находится файл простая_описаловка.xls

2) Нажми зелёную кнопочку
Вложения
Тип файла: rar простая_описаловка с макросом.rar (20.6 Кб, 33 просмотров)
EducatedFool вне форума Ответить с цитированием
Старый 11.04.2009, 15:35   #10
Tirendus
Форумчанин
 
Аватар для Tirendus
 
Регистрация: 20.03.2009
Сообщений: 272
По умолчанию

еще раз спасибо не лень было посреди ночи потратить несколько часов для незнакомого человека )
Tirendus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь. freedom_fighter Помощь студентам 2 30.12.2008 23:52
Нужна помощь!!)) ТРОЯН=) Паскаль, Turbo Pascal, PascalABC.NET 2 29.12.2008 21:42
Нужна помощь с макросом twolfy Microsoft Office Excel 5 06.10.2008 10:44