Страницы: 1
RSS
Форма акты по списанию
 
Здравствуйте!
Помогите переделать макрос.
Имеется реестр основных средств, по макросу на каждое основное средство создается акт на отдельном листе.
А теперь нужно создавать акты не на каждое основное средство, а один акт на одного материально ответственного. Т.е. смотреть по столбцу P: все что принадлежит Иванову один акт, Все что принадлежит Сидорову второй акт и так далее.
Пожалуйста, Помогите!
 
Файл с макросом
 
На листе Реестр надо сделать список уникальный фамилий материально-ответственных лиц
с их должностями. Затем цикл по этим фамилиям, на базе листа(.) создаете копию, присваиваете
ей имя соответствующего лица и подтягиваете данные из реестра.
 
Готовое решение:
http://excelvba.ru/programmes/FillDocuments

можно формировать акты как по каждой строке (режим по-умолчанию),
так и по блокам строк:
http://excelvba.ru/programmes/FillDocuments/Multirow/Group
 
На листе Реестр  список уникальный фамилий материально-ответственных лиц в столбце АА,
в столбце АВ - должности. Сделайте на листе вторую кнопку, на которую повесьте макрос

Скрытый текст
 
Run-time error "1004":
Application-defined or object-defined error


строка  --  ActiveSheet.Name = iFIO 'присваиваем листу имя ФИО /   загорается желтым
Kuzmich, поможете исправить?
 
В желтой строке (при сбое в работе) установите курсор на переменную iFIO. Значение переменной есть?
 
iFIO=""  выходит
 
Цитата
На листе Реестр список уникальный фамилий материально-ответственных лиц в столбце АА
Точно так?
 
ну вот что получается
 
Спасибо Большое !!! Все получилось
 
Не вникал, изменил цикл (с 12 строки)
Код
For i = 12 To iLastRow  
добавил между строками костыль-подпорку:
Код
        iFIO = Cells(i, 27)               'очередная ФИО
        If iFIO = "" Then GoTo AA
            'ищем ФИО в столбце Р реестраи в конце
Код
        End If
AA:
    Next
Т.е. если ячейка без имени, то переходим к следующему витку цикла.
 
Kuzmich, Огромнейшее спасибо!!
 
Огромнейшее пожалуйста. Но мое отчество не Кузьмич  :)
Подождите автора, предложит что-нибудь получше.
Нужно еще избежать повторной попытки формирования листов.
 
Смотрите в файле
 
Реально сделать, чтобы список уникальных фамилий материально-ответственных лиц в столбце АА, создавался тоже по макросу?
А то это занимает много времени, и допускаешь ошибки
 
У вас в примере список всех фамилий МОЛ в столбце P.
Добаьте в макрос строчки в начало после фрагмента

Код
       With Application
      .ScreenUpdating = False             'отключение обновление экрана
      .Calculation = xlCalculationManual  'отключение пересчёт формул вручную
      .DisplayAlerts = False              'отключение предупреждающих сообщений
    End With

         iLastRow = Cells(Rows.Count, 16).End(xlUp).Row
      Range("P13:P" & iLastRow).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("AA1"), Unique:=True


 Желательно перед этим очищать столбец АА от предыдущих фамилий
 
На будущее (узелок на память и вопрошающим, и помогающим).
Те, кто будет искать формирование списка уникальных фамилий, пройдут мимо этой темы.
Вывод: вы частично лишаете людей помощи.
 
Почему то первую фамилию в списке он копирует 2 раза, (из за не создаются листы) , а остальные нормально
 
В ячейку P12 вставьте ФИО МОЛ , код исправьте на
Код
            Columns("AA").ClearContents
        iLastRow = Cells(Rows.Count, 16).End(xlUp).Row
      Range("P12:P" & iLastRow).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("AA1"), Unique:=True
        
        iLastRow = Cells(Rows.Count, 27).End(xlUp).Row
    For i = 2 To iLastRow                 'цикл по ФИО в столбце АА 
Страницы: 1
Читают тему
Наверх