imho.ws |
![]() |
![]() |
![]() |
# 1 |
Newbie
Регистрация: 01.02.2010
Сообщения: 15
![]() |
Visual Basic или макрос в Excel
Помогите пожалуйста создать макрос для таблицы в Excel.
Необходимо раскадрировать пленку, при определенных условиях. В поле 1-го кадра может располагаться 16, 8, 4, 2 или 1 документ. Следовательно, выделяя диапазон ячеек таблицы нужно указать сколько документов помещать в кадр и с какого номера кадра начинать расчет. Должно получиться как то так, например: Ген.план - 4(листа) - (№кадра /№ позиции в кадре) 15/1 - 16/2. Значит задано условие, что в поле кадра 2 документа, и начинается с 15 кадра. |
![]() |
![]() |
# 5 |
Newbie
Регистрация: 01.02.2010
Сообщения: 15
![]() |
ВЕДОМОСТЬ.rar Вот небольшой фрагмент таблицы...
|
![]() |
![]() |
# 6 |
КОТовский
Регистрация: 12.03.2003
Адрес: ОренБюргер
Пол: Male
Сообщения: 1 569
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Tigrenakat, попробуй представить себе что ты ни чего не знаешь (например как я) о том что значит "раскадрировать пленку, при определенных условиях".
А теперь попробуй понять из примера и из того что ты написала что надо сделать? Я вот ни чего не понял. Ни просто разглядывая таблицу, ни просто читая словесное описание проблемы. А совместив и то и другое - не заметил явной взаимосвязи.
__________________
Все мы финансовые гении и эффективные менеджеры, только не у всех одногруппник или сосед по даче - президент. |
![]() |
![]() |
# 7 |
Newbie
Регистрация: 01.02.2010
Сообщения: 15
![]() |
Представь себе старый фотоаппарат, с катушечной пленкой. Обычно в одном поле кадра располагается одна фотография и так , 36 кадров.
В моем случае пленка 30 метров и в одном поле кадра может располагаться не только одно изображение, а 2,4,8,16. Эти цифры и есть условия. Вот мне и надо в таблице присвоить каждому изображению свое место, т.е.номер кадра и позицую в кадре. А так как условия постоянно меняются (это зависит от размеров изображений), мне надо, чтобы макрос работал по выделеному мной диапозону. В этом выделенном диапозоне он просчитал изначально сумму чертежей, потом запросил на какое число разделить (1,2,4,8,16) и с какого номера начать....(например с10-го) . А так как в одном кадре может быть например 2 изображения, для этого и нужна позиция в кадре. Т.е. 10/1, 10/2. Вот как то так... Надеюсь, что теперь стало попонятнее... |
![]() |
![]() |
# 8 | |
Full Member
Регистрация: 20.01.2004
Адрес: Таллинн
Пол: Male
Сообщения: 623
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
В таблице я ничего кроме позиции в кадре ненашёл.
Что с этой цифрой делать - тайна покрытая мраком. Условий в таблице ненашёл. Цитата:
Что есть сумма чертежей и как её считать? ЗЫ! По такому объяснению чтото сделать невозможно в принцыпе. Нужно расписывать ближе к математике. На пример, брать цыфру из ячейки А1, умножить на В1 и от результата отнять С1. А потом всё это разделить на запрошеное число. |
|
![]() |
![]() |
# 9 |
::VIP::
Регистрация: 09.09.2002
Адрес: Kiev
Пол: Male
Сообщения: 1 150
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Tigrenakat, правильно ли будет сказать так?
Код:
Допустим, у нас есть три документа: - План (4 листа, располагать 1 лист на кадр) - Договор (6 листов, располагать 2 листа на кадр) - Фото (10 штук, располагать 4 фото на кадр) И нужно все это расположить, начиная с 10-го кадра. В итоге имеем: План = 10/1 - 13/1 Договор = 14/1 - 16/2 Фото = 17/1 - 19/2
__________________
Great minds discuss ideas. Average minds discuss events. Small minds discuss people. |
![]() |
![]() |
# 10 |
Newbie
Регистрация: 01.02.2010
Сообщения: 15
![]() |
совершенно верно...именно так...
В таблице все заполнено в ручную без формул.., поэтому мне и нужен макрос...или программка которая бы цепляла Excel табл. Но она должна работать именно по выделенной области, которую я буду задавать, в этой области просчитывать количество документов и запрашивать на какую цифру разделить (1,2,4,8,16) а далее присваивать номер и позицию в кадре, опять же с запросом с какого номера начинать.. Я раньше занималась программированием , но это было давно и программы писала к станкам с числовым программным управлением.И уже если честно подзабыла.... Я представляю алгоритм, но не могу прописать команды.... Если вы поняли мою просьбу и могли бы мне помочь...я была бы вам очень признательна.... Помогите мне пожалуйста!!!! |
![]() |
![]() |
# 11 |
::VIP::
Регистрация: 09.09.2002
Адрес: Kiev
Пол: Male
Сообщения: 1 150
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
насчет VB точно не помогу (никогда на нем не писал), но формулу набросать можно попробовать...
последний вопрос: если в кадре есть пустые места - их обязательно заполнять или можно все равно заполнять с нового кадра? т.е., допустим, у нас есть 2 листа по 1/4 кадра; и 2 листа по 1/2 кадра так вот - первый кадр должен быть заполнено полностью или можно его оставить полупустым?
__________________
Great minds discuss ideas. Average minds discuss events. Small minds discuss people. |
![]() |
![]() |
# 12 |
КОТовский
Регистрация: 12.03.2003
Адрес: ОренБюргер
Пол: Male
Сообщения: 1 569
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Tigrenakat, ну так напиши один алгоритм на примере небольшого диапазона подробно, и 2-3 примера кратко, для проверки.
А главное, в первом примере, не забудь указать откуда и что берешь и куда записываешь результат. И будет тебе счастье ![]()
__________________
Все мы финансовые гении и эффективные менеджеры, только не у всех одногруппник или сосед по даче - президент. |
![]() |
![]() |
# 13 |
Newbie
Регистрация: 01.02.2010
Сообщения: 15
![]() |
На самом деле, здесь можно и продолжать и нет, все зависит от размера изображений. (По умолчанию мы принимаем поле кадра за размер А0, следовательно в один кадр может поместиться 2 докум. А1, 4 докум А2, 8 докум. А3, и 16 докум А4. Это , как раз и есть те условия...Положить документ меньшего размера в большую ячейку мы можем, а вот наоборот никак нет, иначе Документ потом невозможно будет воспроизвести. То, для чего мне необходима эта программа называется "МИКРОФИЛЬМИРОВАНИЕ". Сохранение электронных образов на галагенодосеребряную пленку, с которой после проявки, при помощи специального читального аппарата можно будет воспроизвести обратно на бумажный носитель. А микрофильмированию подлежат документы предприятий определенного фактора риска для населения. Это ТЭЦ, ГЭС, Химкомбинаты и т.д. Т.е. в основном технические чертежи. Хороший пример - Саяно-Шушенская ГЭС, в случае обрушения вся имеющаяся документация на предприятии тоже исчезает, а имея страховой фонд в виде микрофильма, мы можем достаточно быстро восстановить необходимые чертежи для проведения аварийно-спасательных работ. Поэтому очень важно знать, в каком кадре находится той или иной чертеж)
добавлено через 6 минут В продолжение...не заполненный кадр можно оставить полупустым и начать со следующего. Но бывает и так, что номер присваивается не всегда последовательно, т.к. бывают допечатки или специальные трафареты, вставляемые в микрофильм, через определенное количество кадров, для улучшения поиска, поэтому мне и нужно, чтобы прежде чем прономеровывать, уточнялось с какой цифры начинать. добавлено через 36 минут Да....бывает и такое, что чертеж форматом больше, чем А0, в этом случае мы его разрезаем, и таким образом на один документ может быть и несколько кадров. Генплан (1 лист форм. 3 А0) - 10-12 кадры |
![]() |
![]() |
# 14 |
КОТовский
Регистрация: 12.03.2003
Адрес: ОренБюргер
Пол: Male
Сообщения: 1 569
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Tigrenakat, очень тяжко додумывать за другого человека что он хочет, когда говорит "поворачивай на право" при этом машет в левую сторону.
Я предполагал что ты скажешь типа: вот листок xls я выделяю строки с 5 по 10 запускаю макрос и у меня получается ... потому что ... Ну на нет ... вот тебе макрос воткни его в VB. выдели нужный диапазон и запусти. На втором листе что то получится. Разбирайся. PS пипец заработался. А ведь хотел только кусок кода вставить, а не вложение делать
__________________
Все мы финансовые гении и эффективные менеджеры, только не у всех одногруппник или сосед по даче - президент. |
![]() |
![]() |
# 15 |
Newbie
Регистрация: 01.02.2010
Сообщения: 15
![]() |
Применительно к таблице ВЕДОМОСТЬ2.
Выделяю дапозон (H19:L22), запускаю макрос Он считает сумму ячеек, далее я должна ввести ему значение на которое он будет ее делить (1,2,4,8,16,или другое), в данном случае - это 2, и указать с какого числа начать номерацию., в данном случае - с 24 В результате в диапоз. (О19:О22) получаю номера кадров с позицией. т.е макрос должен проанализировать каждую ячейку. Если я делю на 2, значит двум значениям соответствует один номер кадра. (24/1, 24/2). Так, понятнее? |
![]() |
![]() |
# 16 |
Full Member
Регистрация: 20.01.2004
Адрес: Таллинн
Пол: Male
Сообщения: 623
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
H19:L22 сумма ячеек получается 20. Где дальше эта цифра используется?
Описания алгоритма както не получается. Вроде как нужно заполнять столбик О. И в каждом ряду вставлять в О одно значение. Число (24) и увеличение от 1 до делителя (2). Получится О19=24/1; О20=24/2. Дальше увеличить число на 1 и повторить увеличение до делителя: О21=25/1; О22=25/2. Или я опять ничего непонял ![]() |
![]() |
![]() |
# 17 |
КОТовский
Регистрация: 12.03.2003
Адрес: ОренБюргер
Пол: Male
Сообщения: 1 569
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
да все я прекрасно понял и без объяснений.
Времени маловато. У этой задачи есть как минимум 2 способа решения. И у каждого будут разрые результаты. Я не понял каким алгоритмом вы хотите получить результат. Ладно набросаю через пару-тройку часов, когда освобожусь и выложу. Алгоритм - оптимальное раскладывание по листам.
__________________
Все мы финансовые гении и эффективные менеджеры, только не у всех одногруппник или сосед по даче - президент. |
![]() |
![]() |
# 19 |
Newbie
Регистрация: 01.02.2010
Сообщения: 15
![]() |
Слушай...ты такой молодец!!!!! Просто супер!!! Огромное спасибо!!!! Ты мне очень помог!!!!Правда, как всегда. я наверно плохо описала задачу....
Скажи...я могу сама задавать на какое число производить деление??? Для меня это очень важно. И еще....прости нахалку....но макрос не работает если в одной строке несколько значений. Например, может быть такой документ который содержит много листов и все разного формата, и в перемешку. Вот тут мне и необходимо, чтобы я сама задавала условие.... Можно так сделать??? А??? Еще раз ОГРОМНОЕ СПАСИБО!!!! И еще...подскажи пожалуйста как мне применить твой макрос к другой таблице? Он будет работать в другой таблице, если она имеет немного другой вид? |
![]() |
![]() |
# 20 | ||
КОТовский
Регистрация: 12.03.2003
Адрес: ОренБюргер
Пол: Male
Сообщения: 1 569
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Не знаю не думал об этом. Попробовать можно результат непредсказуем. Цитата:
а так же результат выводит в колонку следующую за последней колонкой таблицы (эт я так для проверки сделал) PS думаю можно доделать с листами нескольких форматов
__________________
Все мы финансовые гении и эффективные менеджеры, только не у всех одногруппник или сосед по даче - президент. |
||
![]() |