Автосохранение на конкретную дату рабочей книги

Программирование на Visual Basic for Applications
chempion
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 26.04.2006 (Ср) 9:21

Автосохранение на конкретную дату рабочей книги

Сообщение chempion » 26.04.2006 (Ср) 10:05

Добрый день. Решил на работе провернуть глыбообразную затею. Т.е. пытаюсь при помощи Excel автоматизировать работу по кадровому учету (ведение штатного расписание, расчет зарплаты и многих однообразных форм, заполнение которых отнимает кучу времени). Большинство проблем удается решить стандартными Excel-овскими средствами, однако понял, что многое придется решать с помощью VBA. Вопрос следующий: у меня существует некий сводный лист, в котором производят изменение всех перемещений по работе и по средствам Гиперссылок некоторые (нужные мне данные. НЕ ВСЕ) отображаются в другом документе, и все бы было ничего если б не требовалось утверждать ентот самый документ 1-го числа каждого месяца и хранить в электронном виде утвержденную копию. Так вот раньше у меня было 12 листов, т.е. я копировал ЛИСТ "Январь", вставлял данные в ЛИСТ "Февраль" и уже в нем делал все изменения. Так может быть кто знает, как с помощью макросов переписать все гиперссылки с ЛИСТА "Январь" на ЛИСТ "Февраль" и т.д. Принимаются и альтернатывные варианты....... Заранее благодарен.., буду рад и критике... :?
Перед пропастью каждый шаг-решающий...

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 26.04.2006 (Ср) 10:22

Навскидку: лист текущего месяца называть "ТЕКУЩИЙ МЕСЯЦ", при отправке на свалку истории переименовывать в "ЯНВАРЬ", "ФЕВРАЛЬ" и т.д.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 26.04.2006 (Ср) 10:40

chempion
Мало что понял в постановке задачи. Что значит "данные отображаются в другом документе посредством гиперссылок"? И в чем проблема переписать гиперссылки с одного листа на другой, если при простом копировании ячеек гиперссылки тоже копируются?

ЗЫ Тема для форума по VBA, думаю, скоро ее туда перенесут, так что не удивляйся, если что :)
Быть... или не быть. Вот. В чём вопрос?

chempion
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 26.04.2006 (Ср) 9:21

Сообщение chempion » 26.04.2006 (Ср) 11:52

Большое спасибо, однако мне этот вариант не совсем подходит по ряду обстоятельств, перечислять которые не имеет смысла.... Попробую ВА БАНК. Идеальным решением для меня будет написание макроса с несколькими вложенными циклами, т.е. Книга - "Штатное расписание" лист "январь" - это заготовленная форма в которой существует несколько столбцов, в котором столбец - "С" - название подразделения и вниз по строкам в этой форме вставлены названия этих самых подразделений: "Автотранспортный цех", "Хозяйственная группа", "Служба материально-технического снабжения" и т.д. Нужно организовать цикл проверки, т.е. если "С15" листа "январь" книги "Штатное расписание" = "D67" листа "сводный" книги "Оплата труда" (проверка отнесения по названию подразделения), то в книгу "Штатное расписание" под названием сходного подразделения всавить строку с некоторыми данными из проверяемой строки например ФИО, должность, тарифная ставка и т.д. Допустим у меня в листе "сводный" есть А67 - Иванов И.И., В67 - водитель автомобиля., D67 - автотранспортный цех, вот мне и нужно взять его принадлежность к тому или иному подразделению (в нашем случае - Автотранспортный цех и вставить некоторые данные этого человека под названием этой службы в другую книгу.
Поймите меня правильно, мне есть чем заняться, просто пришел на работу (я экономист по этой оплатной части) и тут существует очень много пробелов в работе, а формирование такого рода документов отнимает практически все время и на выполнение других должностных инструкций не остается никакого времени. Вот и пытаюсь отладить работу, организованную до меня ушедшей на пенсию женщиной, которая довольно успешно пользуется калькулятором и счетами, НО не ПК...... Буду рад любому совету...
Перед пропастью каждый шаг-решающий...

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 26.04.2006 (Ср) 11:56

Понятно. Теперь, правда, непонятно, причем тут гиперссылки.
А в чем конкретно возникает проблема? Ты сам пробовал писать эти макросы?
Быть... или не быть. Вот. В чём вопрос?

chempion
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 26.04.2006 (Ср) 9:21

Сообщение chempion » 26.04.2006 (Ср) 12:32

С гиперссылками не заморачивайся. Это я сам себя уже запутывал. Короче не в них дело.
Дело в том, что я не программист, однако нашел уже пяток книжек по VBA, конечно многое полезного я оттуда взял, т.е некоторые макросы у меня опробированы. Но вот описание полноценного цикла нигде найти не могу, т.е. либо примитив, либо такие запутанные вещи, что в них черт ногу сломит и как правило эти макросы еще и не работают. Пытался сам писать и с помощью ...Do-Loop.. и ...If-Then-Else... и ...Select Case... пытался, но видимо, моих двух извилин не хватает катастрофически...... На одном листе еще что-то получается, а вот с разными книгами организовать это вообще что-то кошмарное. Я пришел к выводу, что искать нужно что-то в Select Case, вложенном в If-then-Else, с помощью какой-то одной инструкции у меня ничего не получилось. Поможите пожалуйста.........
Перед пропастью каждый шаг-решающий...

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 26.04.2006 (Ср) 12:44

Думаю, если выложить сюда рабочие книги: что дано и что треба, будет проще

chempion
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 26.04.2006 (Ср) 9:21

Сообщение chempion » 26.04.2006 (Ср) 13:44

Есс-но в силу того, что информация конфиденциальна, все выложить не могу, но на скорую руку создал 3 книги: 1 Рабочая книга, 2 Расстановка (форма), 3 Расстановка (желаемый результат) (в последней есть небольшое примечание).
Вложения
Извращения со штатным.rar
Тут все
(7.6 Кб) Скачиваний: 52
Последний раз редактировалось chempion 26.04.2006 (Ср) 13:50, всего редактировалось 1 раз.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 26.04.2006 (Ср) 13:47

Ессесно, конфиденциальная информация нам не нужна. Но подготовленные на скорую руку книги мог бы и выложить :lol:
Быть... или не быть. Вот. В чём вопрос?

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 27.04.2006 (Чт) 7:40

Вот накидал. Надеюсь поможет
Вложения
Извращения со штатным.rar
(21.27 Кб) Скачиваний: 52

chempion
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 26.04.2006 (Ср) 9:21

Сообщение chempion » 27.04.2006 (Чт) 8:32

Nicky
Огромадное спасибо. Всё работает. Пытаюсь разобраться. Только вот я не понял?, каким образом ты ссылаешся на столбцы??? Range("TABNO").Column и т.д. Объясни пожалуйста. С меня причитается......
Перед пропастью каждый шаг-решающий...

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 27.04.2006 (Чт) 8:48

Регионы в excel можно именовать. Регион (Range) - это одна или больше прямоугольных областей, состоящих из одной или более ячеек.
Выделяешь нужную область, затем в левом верхнем углу, слева от строки формул, в комбобоксе указываешь имя, там же можешь выделить одну из имеющихся. Редактировать можно через меню "Вставка" -> "Имя". Я обозвал ячейки, чтобы не привязываться к номерам колонок.

chempion
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 26.04.2006 (Ср) 9:21

Сообщение chempion » 27.04.2006 (Чт) 9:27

Nicky
Вот теперь усё понятно. Продолжаю мучаться. Ещё раз спасибо. ОЧЕНЬ ПОМОГ!!!!!!!!!! Должен буду......
Перед пропастью каждый шаг-решающий...

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 27.04.2006 (Чт) 9:33

ок ;)

chempion
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 26.04.2006 (Ср) 9:21

Сообщение chempion » 27.04.2006 (Чт) 14:14

А вот ещё вопрос? У меня есть ячейка с датой начала и датой окончания приказа. Ну напрмер: надбавку назначили на основании приказа с датой начала и датой окончания. Я вставляю в ячейку K1 - дату вступления в силу приказа, а в L1 - дату окончания. Т.е. надбавка 30% начинает применяться с 1.01.2006. до 1.01.2007 Как сделать так, чтобы текстовое сообщение с пометкой об окончании действия приказа начало вылазить ну скажем за неделю и до истечения срока действия приказа, после чего удалялось. И в каком формате записывать даты?, а то начнуться потом какие-нибуть подводные камни...
Перед пропастью каждый шаг-решающий...

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 27.04.2006 (Чт) 14:28

Код: Выделить всё
  Dim l As Long
 
  l = DateDiff("d", Date, Cells(1, 12), vbMonday)
  If l <= 7 Then MsgBox "Срок надбавки истекает через " & l & " дней!!!"

chempion
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 26.04.2006 (Ср) 9:21

Сообщение chempion » 27.04.2006 (Чт) 15:17

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

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 27.04.2006 (Чт) 15:31

Да ладно. Один раз должен ;)


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 62

    TopList