Новости:

Прикрепить к сообщению можно только файлы xls, gif, jpg, rar, zip,7z, bas, frm, cls, doc размером до 150 Кб.

Главное меню

Запуск процедуры из файлов

Автор Николай Николаевич, 20.12.2011, 17:47

« назад - далее »

Николай Николаевич

Экономисты по итогам месяца должны свои данные сдавать в бухгалтерию.
Данные сгруппированы у каждого работника в файле на нескольких листах.
Имена файлов экономистов различаются.

В бухгалтерии бухгалтер получает файл от экономиста, открывает его, заходит на
интересующий его лист, выделяет требующиеся ему строки с данными и запускает
процедуру обработки и копирования требуемых данных в файл бухгалтерии.
Бухгалтер запускает процедуру путем клика на иконке на панели иконок.
К иконке привязано название запускаемой процедуры, текст которой находится
в файле экономиста. Процедура и ее название одинаковые во всех файлах экономистов.

Проблема в том, что в некоторых файлах процедура не запускается. Если заново
привязать имя процедуры к иконке, то процедура нормально запускается и
отрабатывает.

Помогите советом, как лучше решить проблему?

NULL

kuklp

А кто не дает натыкать кнопок на лист?
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

Николай Николаевич

Обычная кнопка неудобна тем, что смещается вместе со строками.

Например, бухгалтер выделил требуемые ему строки с 348 по 364,
а потом ему надо перейти к первым строкам листа, где у него кнопка и
следить за тем, чтобы случайно не кликнуть на обычную ячейку,
чтобы не пропало требуемое выделение. А если это произойдет,
то макрос добросовестно скопирует ту единственную строку,
где находится курсор, со всеми вытекающими бухгалтерскими проблемами.


NULL

kuklp

#3
Окно-закрепить области. См. скрин. Не, я ж не настаиваю. Это как вариант лечения головной боли. В 2003 вообще можно при открытии книги программно создавать панель с кнопкой или(в любом) пункт меню по ПКМ, а при закрытии удалять.
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

Николай Николаевич

#4
Закрепить области - значит ввести ограничения на работу с файлом, в частности на удаление строк. Сейчас экономисты делают с ним, что хотят. Это их файл.

При присвоении макроса кнопке (иконке) в EXCEL 2003 внизу есть меню. Подскажите,
грамотный выбор значения из этого меню поможет решить проблему?
Сейчас задается "для всех файлов".


Может создать процедуру в файле бухгалтерии (а он всегда один) или в личной книге макросов, и запускать иконкой именно эту процедуру. В ней, первым же оператором, определить имя текущего файла с данными, и затем из процедуры, находящейся в личной книге макросов, запустить процедуру из файла экономистов.
Тогда как указать имя файла EXCEL из которого надо запускать процедуру?


NULL

kuklp

#5
Sub www()
   Application.Run "PERSONAL.XLS!ИмяМакроса"
End Sub

Цитироватьзначит ввести ограничения на работу с файлом, в частности на удаление строк
с чего бы это? Задайте в свойствах кнопки не перемещать и не изменять размеры и удаляйте что хотите. Да и шапку документа вряд-ли ваши бухгалтеры меняют поминутно.
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

Николай Николаевич

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

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

Wasilic

ЦитироватьЭкономисты делают с файлом все, что захотят.
Так может выложите хоть один файлик ваших экономистов-анархистов. :)
Может и я на что сгожусь ... Если сгодился, можете меня по+благодарить+.