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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2009, 15:11   #1
Judge52
Новичок
Джуниор
 
Регистрация: 12.03.2009
Сообщений: 2
По умолчанию Последовательное копирование непустых строк..

Думал думал как назвать тему.... ну да ладно
Всем доброго времени суток...

Когда-то маялсо дурью в VBA и вот стариной решил тряхнуть. Путем длительных мучений создал печатный шаблон. Находится он на отдельном листе "наряд-заказ". Заполняется наряд заказ с использованием UserForm (т.е. постоянно обновляется). И вот столкнулся я с проблемой архивирования данных наряд-заказов.

Хочу, чтобы все наряд-заказы сваливались на отдельный лист ну например "архив". Затем наряд-заказ очищается и заполняется снова, т.е. все непустые строки нового наряда-заказа должны архивироваться на листе "архив" последовательно начиная с первой непустой строки.

Допишу еще макрос в листе "архив" для формирования сводной таблицы и наглядно смогу мониторить...

Или мож я просто запутался и вы предложите более рациональное решение?
Вложения
Тип файла: zip Учет.zip (120.9 Кб, 24 просмотров)
Judge52 вне форума Ответить с цитированием
Старый 12.03.2009, 19:14   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Хочу, чтобы все наряд-заказы сваливались на отдельный лист ну например "архив"
Ну, это не проблема сделать.
Сделал бы сразу, но много вопросов по печатному шаблону...

Цитата:
Затем наряд-заказ очищается и заполняется снова
Как именно очищать?
Удалять значения в диапазонах d9 : d100, g9 : g100, e3 : e6 ?
Или ещё что-то?

Цитата:
Допишу еще макрос в листе "архив" для формирования сводной таблицы и наглядно смогу мониторить
Вы опишите, что Вы понимаете под сводной таблицей (как она должна выглядеть). Может, сразу и сделаем...

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

Обязательно столько пустых строк? (со словом "Опция")?
Или их надо удалять по окончании формирования заказ-наряда?

Я бы сделал так:
1) Изначально заказ наряд пустой (только шапка, одна строка данных, итоговые строки, и подпись)
2)При выделении в строке данных (пока единственной) ячейки в столбце D появляется выпадающий список доступных операций
3) при выборе нужной операции в ячейке справа автоматически появляется её стоимость с учётом класса (причём класс выбирается в одной из ячеек на листе, без использования формы с десятками ToggleButton), и автоматически добавляется ещё одна строка для данных (чтобы заказ-наряд на 5 операций не занимал 2 печатных листа)


Прикрепите нормальный файл - так будет проще разобраться.

PS: Кстати, зачем было так урезать файл? (удалять элементы управления с форм, и т.д.)
Нам было бы гораздо проще понять, что можно (или нужно) оптимизировать...

К примеру, можно было бы найти более изящный способ вычисления суммы за операцию без использования кучи однотипных обработчиков типа этого:
Код:
Private Sub ToggleButton5_Click()
If ToggleButton5.Value = True Then
Worksheets("Печатный шаблон").Range("g13") = 1
End If
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 13.03.2009, 08:23   #3
Judge52
Новичок
Джуниор
 
Регистрация: 12.03.2009
Сообщений: 2
По умолчанию

Ну собственно прикрепляю чуть более полный файлик.

Цитата:
Вы опишите, что Вы понимаете под сводной таблицей (как она должна выглядеть).
Сводную таблицу хочу делать штатными средствами Excel. Это средство достаточно гибкое ибо в разный момент времени мне понадобится получать оттуда различную инфу, например о моечном посте, о времени на выполнение операции и т.д. Крайне необходимо чтобы все операции по каждому наряду-заказу были отображены.

Вообще было бы идеальным если б архив хранился в отдельной "запароленой" книге. С дневным архивированием (т.е. пока исходная книга открыта, проблем нет), а вот как это сделать если книга-исходник открывается на следующий день.... Вобщем основной вопрос - "как хранить различные данные?".

Много форм создаются для того, чтобы они были интуитивно-понятными и дабы исключить по возможности человеческий фактор, ибо если б я сидел за кассой, я б без всяких форм заполнял информацию )))
Вложения
Тип файла: zip Учет автомойка.zip (148.8 Кб, 39 просмотров)
Judge52 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование перекрывающихся строк strncpy LinuxUser Общие вопросы C/C++ 2 01.12.2007 15:46
Копирование строк. Правильный ли код? LinuxUser Общие вопросы C/C++ 12 06.11.2007 17:33
Сортировка в StringGrid'е, копирование строк из одного SG в другой monushka Помощь студентам 3 29.10.2007 23:54
Подсчёт непустых клеток mik Microsoft Office Excel 7 27.10.2007 13:40
Копирование строк Mikola Общие вопросы Delphi 8 21.09.2007 17:21