Страницы: 1
RSS
Реестр платежей
 
Цель:    
1) каждый день делается список предстоящих платежей и утверждается у директора (лист "ТРЕБУЕТСЯ НА ПОДПИСЬ").  
2) ведется общий реестр платежей (лист "ТРЕБУЕТСЯ ОБЩИЙ РЕЕСТР").  
 
Моя мысль (вариант 1)  
Ведем реестр прямо подряд со сквозной нумерацией. При этом сверху шапка, а снизу подвал документа с подписями.  
Каждый день пользователь:  
1) Вносит в реестр новые платежи.  
2) Запускает автофильтр по дате.  
3) Макрос схлопывает сквозную нумерацию.  
 
Затруднения:    
1) Как в ячейку F8 внести дату, по которой сработал афтофильтр?  
2) Как сделать нумерацию для конкретного дня после срабатывания автофильтра?  
 
Вариант 2 (не очень нравится)  
1. На листе "Подготовка" пишем все в столбик.  
2. Макросом вносим все в реестр (специальная вставка, транспонировать).  
3. Дергаем из реестра данные на лист "На подпись" (функции Vlookup, Index).  
 
Был бы очень признателен за помощь, особенно с первым вариантом. Он мне кажется достаточно перспективным.    
Второй вариант, мне кажется, неудачен.  
Есть еще варианты?  
 
В любом случае прошу помочь с вопросами по первому варианту - это будет огромная помощь мне в освоении Excel.  
 
 
Затрудняюсь:
 
У вас подозрительная организация.. вы оплачиваете все в тот-же день когда подходит срок ? отложенных платежей разве не бывает ?
 
Бывают. Тут главное получить визу директора. А бухгалтер потом перечисляет.
 
Свой вариант:  
база платежей с датой оплаты.  
нажимаем на кнопку - формируется отчет: шапка, платежи с нужной датой, подпись.
 
Я полагаю вариант должен быть следующий ..ведется база платежей , есть столбец оплаты в который ставится дата оплаты потом макросом или формулами как хотите подтягиваются нужные документы в лист с шаблоном на подпись, если че-то шеф вычеркнул , убрали дату и переформировали список. У меня есть оба подобных варианта .
 
{quote}{login=Микки}{date=31.03.2010 09:47}{thema=}{post}У меня есть оба подобных варианта .{/post}{/quote}  
 
Если можете поделиться, был бы очень признателен.  
Е-мейл: grabl<nos@pam>mail.ru  
 
Или сюда, на форум.
 
{quote}{login=}{date=31.03.2010 10:01}{thema=Re: }{post}{quote}{login=Микки}{date=31.03.2010 09:47}{thema=}{post}У меня есть оба подобных варианта .{/post}{/quote}  
 
Если можете поделиться, был бы очень признателен.  
Е-мейл: grabl<nos@pam>mail.ru  
 
Или сюда, на форум.{/post}{/quote}  
Я написал Вам на мэйл дошло или нет?
 
Pepper,  
попробуйте так.
 
Формулами для адаптации я Вам послал а макросом Вам уже сделали.. искать уже не буду.
 
Спасибо большое.  
Оба решения весьма заинтересовали.    
Буду думать, на это нужно время.  
 
Может быть, пока вот такие вопросы:  
Nilem, что-то я с обновлением даты не могу разобраться - мне кажется, эта процедура не работает.  
 
Микки, у Вас не схлопываются пустые строки.  
При этом они не пустые в прямом смысле - в них формула.  
Как их схлопнуть?
 
После того, как вы добавите новую запись с новой датой в таблицу, нажмите "Обновить даты". Новая дата будет включена в коллекцию Даты и отобразится в списке.  
Забыл. В коде кнопки "На печать" добавьте в самом начале  
Application.ScreenUpdating = False  
и в самом конце  
Application.ScreenUpdating = True
 
{quote}{login=}{date=31.03.2010 11:48}{thema=Re: }{post}Спасибо большое.  
Оба решения весьма заинтересовали.    
Буду думать, на это нужно время.  
 
Может быть, пока вот такие вопросы:  
Nilem, что-то я с обновлением даты не могу разобраться - мне кажется, эта процедура не работает.  
 
Микки, у Вас не схлопываются пустые строки.  
При этом они не пустые в прямом смысле - в них формула.  
Как их схлопнуть?{/post}{/quote}  
Это формулы они не могут схлопнуться ...для этого нужен макрос.. но тогда Вам нужно будет учится переписывать макрос при изменении исходных данных.
 
Микки,    
скрыть строки по условию я могу.  
Но вот беда - они не пусты, в них формула.  
Поэтому как-то с условием затруднился.
 
Кажется, что-то вырисовывается. Спасибо большое всем, кто помогает.  
 
Уперся в нумератор на листе Registry - не могу автоматизировать.    
Сейчас в файле - условно - исходное положение. Если нажать кнопку "Внести в архив" на листе Preparation, то, в принципе, все получается.  
Кроме нумератора. Т.е. если я вручную опять растяну ряд цифр в колонке сквозной нумерации, то макрос "Архивация" опять корректно сработает.  
 
Помогите, пожалуйста - как тут быть-то.    
 
Вообще был бы признателен за любую критику и предложения.
 
Держите вариант макроса.  
Поищите тему по определению границ данных. Вы использовали надежный, но не совсем эффективный способ.  
Кроме того, у Вас не все переменные были объявлены. Для избежания ошибок с переменными используйте Option Explicit. Старайтесь избегать использования Select. ВБА позволяет обрабатывать диапазоны ячеек и без выделения. Правда бывает что иногда эффективнее его использовать. Смотрите пример от KL  
http://www.planetaexcel.ru/forum.php?thread_id=14948  
 
Option Explicit  
Sub Архивация()  
'  
' Архивация Макрос  
' Макрос записан 04.04.2010 (Avatar)  
'  
 
   Dim row_count As Long, i As Integer, lRow As Long  
   'переменная row_count - для подсчёта количества заполненных ячеек  
   'переменная i используется в цикле для хранения номера текущей строки  
 
Application.ScreenUpdating = False  
 
   'последняя заполненая строка на активном листе  
   row_count = Cells(Rows.Count, 3).End(xlUp).Row  
 
   'операции с целевым листом  
   With Sheets("Registry")  
       'определяем первую не заполнную строку  
       lRow = .Cells(Rows.Count, 2).End(xlUp).Row + 1  
       'очищаем от подписей  
       .Range(.Cells(lRow, 1), .Cells(lRow + 5, 8)).ClearContents  
 
       'копируем диапазон  
       Range(Cells(2, 1), Cells(row_count, 7)).Copy  
 
       'вставляем скопированные данные  
       .Cells(lRow, 2).PasteSpecial Paste:=xlPasteValues  
       'определяем новый размер данных  
       lRow = .Cells(Rows.Count, 2).End(xlUp).Row  
       'нумеруем используя свойство - Автозаполнение  
       .Range(.Cells(10, 1), .Cells(lRow, 1)).DataSeries Rowcol:=xlColumns, Type:=xlLinear, Step:=1    ', Trend:=False  
 
       .Cells(lRow + 2, 3) = "Начальник______________"  
       .Cells(lRow + 4, 3) = "Дурак______________"  
 
   End With  
 
   MsgBox "Данные перенесены", vbInformation, "Готово"  
     
   Application.ScreenUpdating = True  
End Sub
 
Пример часто используемых в макросах инструкций.
 
Решение очень замечательное. Поразбираюсь, спасибо большое за помощь.    
Пока сложновато. Что-то у меня дебаггер ругается на вот эту строку:  
 
.Range(.Cells(10, 1), .Cells(lRow, 1)).DataSeries Rowcol:=xlColumns, Type:=xlLinear, Step:=1 ', Trend:=False  
 
Что не так?
 
Снимите автофильтр с даты, или как вариант добавьте в макрос строку перед началом работы с листом.  
Sheets("Registry").AutoFilterMode = False
 
Так у меня вся идея и заключалась в том, чтобы автофильтр был.  
Если его сбросить, а потом попытаться поставить опять,  
он появляется в первом ряду (я применил заполнение колонок А и В до 10 ряда).
 
Ну все же в Ваших руках:)
 
Спасибо большое. Буду переваривать информацию.
Страницы: 1
Читают тему
Наверх