Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 17 След.
Макрос вставки листов с проверкой названий листов
 
Нашел вариант получить желаемый результат, может кому то пригодится:
Код
Sub Выгрузить()
Set rb = ThisWorkbook.Worksheets("Задачи зафиксированные")
Set ob = ThisWorkbook.Worksheets("Ошибки зафиксированные")
Set rbi = ThisWorkbook.Worksheets("Задачи измененные")
Set obi = ThisWorkbook.Worksheets("Ошибки измененные")
Set wb = ThisWorkbook.Worksheets("Управление")
Name = Format(wb.Cells(1, 1), "yyyy") & "-" & Format(wb.Cells(1, 1), "mm")
Workbooks.Add
ActiveWorkbook.SaveAs ("C:\Отчет по анализу задач " & Name & ".xlsx")
Set pb = ActiveWorkbook
Dim gb As Worksheet
l = 1
For h = 2 To ob.Cells(1, 1).CurrentRegion.Rows.Count
    If ob.Cells(h, 13) <> "" Then n = ob.Cells(h, 4).Value Else GoTo EndFor1 'определяю имя листа
    On Error Resume Next
'определяю наличие листа с таким именем
    Set gb = Worksheets(n)
        If Err.Number <> 0 Then
            pb.Sheets.Add().Name = n 'если нет такого листа я его генерю
            Set gb = pb.Worksheets(n) 
        Else
            Set gb = pb.Worksheets(n) 'Если есть лист я его переиспользую
        End If
          
            j = gb.Cells(1, 1).CurrentRegion.Rows.Count + 1 'определяю пустую строчку после заполненной в листе
'произвожу копирование данных по признаку
            ob.Cells(h, 1).Copy gb.Cells(j, 1) 'номер
            gb.Cells(j, 2) = ob.Cells(h, 2) ' описание
            Comment_Copy gb.Cells(j, 2), ob.Cells(h, 2) ' пояснение
            gb.Cells(j, 3) = ob.Cells(h, 3)  ' тип
            gb.Cells(j, 4) = ob.Cells(h, 5)  ' проект
            gb.Cells(j, 5) = ob.Cells(h, 6)  ' стаиус
            gb.Cells(j, 6) = ob.Cells(h, 13)  ' документация

EndFor1:
Next
'Закрываем файл
ActiveWorkbook.Save
ActiveWorkbook.Close


End Sub


Всем спасибо за помощь
Макрос вставки листов с проверкой названий листов
 
МатросНаЗебре, Спасибо. Сейчас сформировал первый лист и внес данные но при попытке сформировать второй опять падение. поэксперементировал с вариантами указания что следующий лист должен быть после имеющегося но опять падение с ошибкой (уже при попытке сформировать первый лист книги).
Макрос вставки листов с проверкой названий листов
 
МатросНаЗебре, К сожалению не помогло :(
падение на строке
Код
If gb Is Nothing Then pb.Sheets.Add().Name = n
Макрос вставки листов с проверкой названий листов
 
Есть схожая задача. Пытаюсь распределить данные по листам в зависимости от того к кому они относятся. Но у меня падение при попытке заполнения имени листа. Макрос писал на основе того что в этой теме представлен. Подскажите где я косякнул в анализе ваших вариантов макроса
Код
Sub Выгрузить()
Set ob = ThisWorkbook.Worksheets("Ошибки зафиксированные")
Set wb = ThisWorkbook.Worksheets("Управление")
Name = Format(wb.Cells(1, 1), "yyyy") & "-" & Format(wb.Cells(1, 1), "mm")
Workbooks.Add
ActiveWorkbook.SaveAs ("C:\Отчет по анализу задач " & Name & ".xlsx")
Set pb = ThisWorkbook

For h = 2 To ob.Cells(1, 1).CurrentRegion.Rows.Count
    If ob.Cells(h, 13) <> "" Then n = ob.Cells(h, 4).Value
    Do
        If Not pb.WorksheetExist(n) Then pb.Sheets.Add().Name = n
            Set gb = ThisWorkbook.Worksheets(n)
            j = gb.Worksheets(n).Cells(1, 1).CurrentRegion.Rows.Count
            ob.Cells(h, 1).Copy gb.Cells(j, 1) 'номер
            gb.Cells(j, 2) = ob.Cells(h, 2) ' описание
            Comment_Copy gb.Cells(j, 2), ob.Cells(h, 2) ' пояснение
            gb.Cells(j, 3) = ob.Cells(h, 3)  ' тип
            gb.Cells(j, 4) = ob.Cells(h, 5)  ' проект
            gb.Cells(j, 5) = ob.Cells(h, 6)  ' стаиус
            gb.Cells(j, 6) = ob.Cells(h, 13)  ' документация
            Exit Do
    Loop
Next
'Закрываем файл
ActiveWorkbook.Save
ActiveWorkbook.Close


End Sub
Изменено: alex_j - 10.02.2025 14:46:54 (прикрепил файл)
Определить имя файла созданного сегодня
 
Дмитрий(The_Prist) Щербаков, Спасибо.
Определить имя файла созданного сегодня
 
Дмитрий(The_Prist) Щербаков, а можно использовать filedatetime как параметр для dir при выборе файла? если dir фактически перебирает файлы в папке?
Определить имя файла созданного сегодня
 
BodkhiSatva, задача получить имя файла. Часть кода где идет обработка файла уже готова и отрабатывает на директориях с единичным файлом
Определить имя файла созданного сегодня
 
Дмитрий(The_Prist) Щербаков,  т.е. моя задача решается строкой:
Код
 if FileDateTime(sFolder & Dir(sFolder & "*.xls*"))="today_" & Format(Date, "YYYYMMDD") then fname=sFolder & Dir(sFolder & "*.xls*")
Определить имя файла созданного сегодня
 
BodkhiSatva, мне нужно только в excel это отработать. Я представляю себе процесс как:
определить файлы в директории объявить их массивом
пробежаться циклом по этому массиву сравнивая атрибут даты создания файла с текущей датой
получить, на выходе, имя файла соответствующее искомому.

по командам екселя определение имени файла в директории прекрасно отрабатывает команда dir
но она возвращает первое имя файла в директории. Надеялся что есть вариант ее модификации или другая команда которая позволяет получить искомое имя.
Определить имя файла созданного сегодня
 
Доброго всем дня. Посерфил вопрос по форумам но не нашел простого решения. У меня ситуация в директорию складываются файлы с похожими названиями но обработке нужно выбрать только файл который создан сегодня для преобразования его в удобочитаемый вид. Как получить из директории название только такого файла? Помогите, плиз.
проверка, что строка входит в массив строк с именем, как сделать проверку, что строка входит в массив строк с именем
 
Sanja, подгрузил файл. Мне фактически нужно только получить признак. К сожалению как было показать не могу :(
проверка, что строка входит в массив строк с именем, как сделать проверку, что строка входит в массив строк с именем
 
Всем доброго дня.

У погуглил по форуму но не смог найти. У меня задача сравнить строку с массивом строк. Строки с которыми я сравниваю объединены как массив с именем. и задача просто определить есть ли в данном массиве строк такая строка. Как я понимаю в excel под такое безобразие есть какая то встроенная функция. Хотя я могу ошибаться. Не подскажете как решить задачу? Или где искать вариант решения.
Изменено: alex_j - 13.02.2024 17:37:13 (загрузка файла)
Вопрос по выпадающему списку
 
Проблема решена, всем спасибо за консультации.
Для обхода этой проблемы добавил лист (массив) на который вынес столбцы с данными по выпадающим спискам. В коде реализовал:
Код
Sub Ìàêðîñ1()

Dim ls1 As Long
Dim wb, Db As Worksheet
Set wb = ThisWorkbook.Sheets(1)
Set Db = ThisWorkbook.Sheets(2)

ls1 = Db.Cells(Rows.Count, 1).End(xlUp).Row
wb.Cells(5, 1).Delete
Names.Add Name:="test", RefersTo:="=Ëèñò2!$A$1:$A$" & ls1

wb.Cells(5, 1).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=test"

End Sub

Как результат файл не крашится при повторном открытии, нет проблемы с разбиением строки при наличии в ней запятых (в одном из вариантов экспериментов такое было.
Еще раз всем спасибо.
Вопрос по выпадающему списку
 
MikeVo, Хммм ... и как с этим бороться ... я пробовал еще через именные диапозоны делать. Но то ли косяк накодил то ли код накосячил ....в переменную имя не подтягиваются значения и выпадающий список n/a
Код
Sub обновить()
Dim arr As Variant

Dim OshW(8) As String
      OshW(0) = "Изменение процесса без отчетности, с требованиями"
      OshW(1) = "Изменение отчета без процесса, с требованиями"
      OshW(2) = "Изменение процесса и отчета, с требованиями"
      OshW(3) = "Изменение процесса без отчетности, без требований"
      OshW(4) = "Изменение отчета без процесса, без требований"
      OshW(5) = "Изменение процесса и отчета, без требований"
      OshW(6) = "Технические изменения"
      OshW(7) = "Не удалось классифицировать"
      u1 = Join(OshW, ",")
      arr = Range("h1:h8")
     'Names.Add "List1", arr
     'u2 = Join(arr, ",")
     ActiveWorkbook.Names.Add Name:="ggg", RefersToR1C1:="=Лист1!R1C8:R8C8"
      Cells(2, 2).Validation.Delete
'Cells(2, 2).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=u1
'Cells(2, 2).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=List1
Cells(2, 2).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=ggg

End Sub
Вопрос по выпадающему списку
 
Sanja, Млин ..... походу я один такой не везучий. Макрос то отрабатывает но если открывать файл после его сохранения с отработавшим макросом то идет запрос на восстановление файла. :( и после того как ты соглашаешься с тем что доверяешь источнику то получаешь битый файл.
Можно конечно обойти все это просто сделав отправку во внешний файл данных которые ты выбираешь работая с данными из файла и запретить сохранение самого файла с которым работаешь.
При получении данных из внешнего файла подтянуться результаты распределения и все такое .... но это просто костыль к процессу.
Просто пока непонятно почему excel не нравится то что в выпадающем списке всегда можно повторить ошибку
Вопрос по выпадающему списку
 
Jack Famous, так VBA никуда не обращается. В последнем файле он работает исключительно с тем что у него внутри :) но файл крашится. И я этого понять не могу.  
Вопрос по выпадающему списку
 
MikeVol, Не помогает. :(
Иначе я бы не мучил окружающих своей проблемой. Удаление выпадающего списка из ячейки перед помещением туда нового это обязательный шаг при повторном помещении списка в ячейку (как показала практика иначе происходит падение по коду). Здесь, почему то падение с уже помещенным списком. при этом ошибка при открытии файла что данные некорректные. Я пересобрал свой файл и отрубал помещение выпадающих списков пока не выделил именно этот. но я не вижу в нем отличие от прочих.  
Вопрос по выпадающему списку
 
MikeVol, Нашел часть кода которая ломает файл. Вычленил в отдельный файл но не могу понять почему ломает прикладываю файлик с вычлененым кодом и сам код. Я конечно та еще слепондя но может я чего то не вижу
Код
Sub обновить()

Dim OshW(8) As String
 OshW(0) = "Изменение процесса без отчетности, с требованиями"
      OshW(1) = "Изменение отчета без процесса, с требованиями"
      OshW(2) = "Изменение процесса и отчета, с требованиями"
      OshW(3) = "Изменение процесса без отчетности, без требований"
      OshW(4) = "Изменение отчета без процесса, без требований"
      OshW(5) = "Изменение процесса и отчета, без требований"
      OshW(6) = "Технические изменения"
      OshW(7) = "Не удалось классифицировать"
      u1 = Join(OshW, ",")
Cells(2, 2).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=u1

End Sub

при описании переменной u1 as string она становится строкой, а без описания выборочной строкой.

Сам макрос отрабатывает и вешает раскрывающийся список. Но после открытия файла с этим списком в ячейке файл жаждет восстанавливаться и крашится после восстановления.

Помогите люди добрые я уже голову сломал походу.

Вопрос по выпадающему списку
 
MikeVol, попробовал просто макрос валидат - скачал файл, заполнил поля значениями из выпадающих списков. Сохранил файл. Закрыл. Открыл. и у меня опять запрос на восстановление. Похоже с выпадающими списками у меня какие то проблемы.

а есть еще какие то варианты организации выпадающего списка значений средствами VBA?
Вопрос по выпадающему списку
 
MikeVol, Эксперимент с треском провалился. все таки проблема в формировании выпадающих списков. Причем на странице в которой происходит выбор между вариантами списков
Вопрос по выпадающему списку
 
MikeVol, Спасибо. попробую сейчас. Но это все равно будет корпоративный комп (иначе не подтянется информация) и софт там будет идентичный  
Вопрос по выпадающему списку
 
Sanja, Я создал новую книгу. в книге сформировал пустые листы и модуль (записать макрос - остановить запись. И так 3 раза) потом скопировал только код в макросы). Сохранил книгу. Закрыл книгу. Открыл книгу - открытие без ошибок. отработал макрос получения данных сохранил книгу. Закрыл книгу. Открыл книгу - excel предложил восстанавливать файл.  
Вопрос по выпадающему списку
 
Теперь интересный глюк. при открыти файла Excel утверджает о его повреждении данными и предлагает его восстанавливать. Восстанавливая он генерит дополнительные листы в формате книга. При этом пока данные не подтянуты (не произошло первичного заполнения, а просто есть чистая книга с макросами. такой ошибки нет. Не знаете почему такое может происходить? или новую тему с этим вопросом лучше завести?
Вопрос по выпадающему списку
 
Sanja, Большое спасибо. Правда приложенный файл не ожил. Зато стало понятно откуда проблема растет. Сделал новый файл в который только вживил макросы. Терперь их почистить, добавить третий и можно будет спокойно поработать :)
Огромное спасибо!!!
Вопрос по выпадающему списку
 
Sanja, оставил маленько данных в макросе написал на какой строке падение. Пересобранный файйл ошибка 429 я обошел, падение с ошибкой 1004
Вопрос по выпадающему списку
 
Есть но я предполагал что ошибка возникает при попытке повторно повесить выпадающий на ячейку в которой таковой уже есть. Потому поставил игнорирование. Без нее получаю ошибку 429 невозможность создания компонента активХ

В принципе могу приложить сам файл там правда много наворочено и данные получить в него не получится т.к. внешние файла будут недоступны и парсить без паролей не получится. Но зато можно посмотреть весь код который я туда намудрил. Может это поможет?
Правда он без данных больше 50 килобайт
Изменено: alex_j - 15.01.2024 17:14:20
Вопрос по выпадающему списку
 
Sanja, ну я вместо выпадающего списка на первом листе получаю выпадающий список с "<n/a>"
Вопрос по выпадающему списку
 
Sanja, Макрос работает. Я проверял это очисткой полученных данных и повторным запуском обоих макросов в файле. Первый макрос подтягивает данные из внешних испочников (внешняя книга и парсятся интернет файлы jira, потом идет уточнение данных из независимой книги) заполняется лист 1 второй макрос должен раскидать то что на листе 1 на лист 2 (ошибки) оставив только не ошибки на листе 1 после этого повесить выпадающие списка на оба листа (ошибки все ячейки подряд, не ошибки в зависимости от типа задачи) и в конце на оба листа вешается выпадающий список типа задачи. Идея в том что после работы пользователя он снова стартанет второй макрос для перпераспределения задач.
Так вот, выпадающий список с типом задачи на обоих листах возникает после старта второго макроса.
Т.ч. макрос отрабатывает .... но как то не так :(
Вопрос по выпадающему списку
 
Sanja, мистика какая то .... макрос не изменен в отдельном файле отрабатывает но при этом в моем файле не отрабатывает :(
Вопрос по выпадающему списку
 
Цитата
написал:
Просто можно же фильтровать Массив и отфильтрованный в зависимости от ваших значений массив "пихать" в выпадающий список
А как? Если я правильно вас понимаю то у меняя просто должен быть непрерывный список значений из которого я по условию показываю в выпадающем списке ту или иную часть? Я такого никогда не делал
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 17 След.
Наверх