![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Регистрация: 13.08.2013
Сообщений: 7
|
![]()
Доброго времени суток! Нуждаюсь в помощи написания макроса! Нужно составить отчет (сегментация) из данных выгруженных в txt.
Суть такова, есть три книги, вернее две, и txt файлы, которые мною вручную преобразовывается в еще одну книгу. Первая книга содержит перечень подразделений в формате: 1-я срока - код подразделения, 2-я срока - название подразделения. Вторая книга содержит отчет (преобразованный из txt в xls) из 11-ти столбцов, из которых 1-ый и 5-ый основные, то есть именно по ним выполняется сортировка и заполняется третяя книга, которая, в свою очередь имеет 6-ть листов. Сейчас я большую часть выполняю вручную, расскажу свой алгоритм: - загружаю txt файл, преобразовываю его в xls; - готовый отчет форматирую макросом таким образом, чтобы 6-ой столбец отчета из числового значения поменялся на текстовый из ПЕРВОЙ книги (то есть вместо кода подразделения выводилось его название); - далее сортирую по 1-му столбцу отдельно по каждому сегменту (5-ый столбец, всего 4 сегмента) и копирую в ТРЕТЬЮ книгу на лист, соответствующий каждому сегменту; - в конце привожу таблицы в третьей книге в эстетический вид. Есть куски макросов, прошу помочь дописать недостающие, и объеденить все в один нормально работающий!) Идея заключается в том, чтобы начиналось все с кнопки выбора txt файла, загрузки и его преобразования в excel формат, замены числовых значений в текстовые (6-ой столбец), заполнения таблиц соответственно сортировки, и заканчивалось сохранением в папке с определенным именем (имя папки и файла соответствовало коду и названию подразделения). Вроде все! Понимаю, что макрос не маленький, но все же надеюсь на помощь. Выкладываю три исходных файла и конечный результат, а также куски макросов какими пользуюсь, и которые нашел для решения отдельных задач. Макрос заполнения формы и сохранения по папкам: Код HTML:
Sub ЗаполнениеДокументов() Set wsS = Worksheets("Список") sPath = ThisWorkbook.Path & "\Отчет\" If Dir(sPath, vbDirectory) = "" Then MkDir sPath End If iRow = 3 Do While wsS.Cells(iRow, 1) <> "" Set wbn = Workbooks.Add ThisWorkbook.Worksheets("ТУТ ЕЩЕ НЕ РАЗОБРАЛСЯ").Copy After:=wbn.Worksheets(wbn.Worksheets.Count) Set wsT = wbn.Worksheets(wbn.Worksheets.Count) wsT.Name = wsS.Cells(iRow, 1) wsT.Cells(15, 2) = wsS.Cells(iRow, 2) wsT.Cells(22, 2) = wsS.Cells(iRow, 4) wsT.Cells(26, 3) = wsS.Cells(iRow, 3) wsT.Cells(8, 9) = wsS.Cells(iRow, 5) wsT.Cells(8, 10) = wsS.Cells(iRow, 6) sFolder = "" & wsS.Cells(iRow, 1) & " - " & wsS.Cells(iRow, 2) MkDir (sPath & sFolder) wbn.SaveAs (sPath & sFolder & "\" & wsS.Cells(iRow, 2)) wbn.Close iRow = iRow + 1 Loop End Sub Код HTML:
Sub Resize() ' ' Resize Макрос ' Добавление строк в таблицу протягиванием. ActiveSheet.ListObjects("AAA").Resize _ Range("$A$1:$J$" & Sheets("BBB").Range("A" & Sheets("BBB").Rows.Count).End(xlUp).Row - 1) End Sub Код HTML:
Sub AttachFile_test() ' пример использования Filename$ = GetFilePath() If Filename$ = "" Then Exit Sub MsgBox "Выбран файл: " & Filename$ End Sub Function GetFilePath(Optional ByVal Title As String = "Выберите файл для обработки", _ Optional ByVal InitialPath As String = "c:\", _ Optional ByVal FilterDescription As String = "Файлы счетов", _ Optional ByVal FilterExtention As String = "*.*") As String On Error Resume Next With Application.FileDialog(msoFileDialogOpen) .ButtonName = "Выбрать": .Title = Title: .InitialFileName = GetSetting(Application.Name, "GetFilePath", "folder", InitialPath) .Filters.Clear: .Filters.Add FilterDescription, FilterExtention If .Show <> -1 Then Exit Function GetFilePath = .SelectedItems(1) folder$ = Left(.SelectedItems(1), InStrRev(.SelectedItems(1), "\")) SaveSetting Application.Name, "GetFilePath", "folder", folder$ End With End Function |
![]() |
![]() |
![]() |
#2 |
Регистрация: 13.08.2013
Сообщений: 7
|
![]()
Сами файлы в архиве!)
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 13.08.2013
Сообщений: 7
|
![]()
Возможно хотя бы кто-нибудь подскажет макрос заполнения таблиц данными с другой таблицы!
Последний раз редактировалось polysster; 14.08.2013 в 23:38. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание макроса для обновление прайса | Magicmax | Microsoft Office Excel | 5 | 21.06.2010 19:59 |
Как отметить несколько строк для выполнения макроса | Vitaliy87 | Microsoft Office Excel | 8 | 07.02.2010 15:17 |
Создание отчетности | IceMann | Microsoft Office Word | 3 | 26.05.2009 15:17 |
Создание SetUp для макроса | Romuald | Microsoft Office Excel | 3 | 06.06.2008 12:23 |