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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 15 След.
Нарезка на книги, макрос нарезки данных на книги
 
Дмитрий(The_Prist) Щербаков,
ответил :oops:  
Нарезка на книги, макрос нарезки данных на книги
 
Цитата
написал:
Абьюз и газлайтинг )
Простите, не понял?
Нарезка на книги, макрос нарезки данных на книги
 
Добрый день!

Коллеги, прошу написать макрос по заданию во вложении. Пример.xlsx (13.21 КБ)(формат файла можно сделать xlsb или xlsm)

Готов предложить 500 р.

Спасибо!
Ошибка вставки значений в книгу, vba / out of range
 
Блин, точно, наименование листа чуть иное.......

Прошу прощения, что отвлек. Совсем глаз замылился(

Спасибо!!!
Ошибка вставки значений в книгу, vba / out of range
 
А только название известно, и все, но книга открыта, точно так же, как и вторая.  
Ошибка вставки значений в книгу, vba / out of range
 
Коллеги, добрый день!

Помогите, пожалуйста, решить мелкую запинку...
Вошел в ступор, никак не могу понять, почему ругается строка вставки "Workbooks(NameWOut).Worksheets(NameSh).Range("B6:G" & t + 4).PasteSpecial".

Постоянно выдает "Subscript out of range" :(

Копирую данные между книгами, вычисляя динамический диапазон копирования.
То, откуда копировать - нормально отрабатывает.
А вот куда - ругается.

Спасибо!
Код
Sub t_ept()
NameWIn = "Отчет_10.2.03.1_«Детальный.Агрегированный» BASE.xlsx"
NameWOut = "01_Закрытие_Январь 2024_.xlsx"
For i = 5 To 44
    'NameSh = ThisWorkbook.Worksheets("main").Cells(i, 2).Value
    NameSh = "БН"
    For j = 1 To 320
        If Workbooks(NameWIn).Worksheets("Лист1").Cells(j, 1).Value = ThisWorkbook.Worksheets("main").Cells(i, 3).Value Then
            t = 1
                Do While Not Workbooks(NameWIn).Worksheets("Лист1").Cells(j + t, 1).Value Like "F_*"
                    t = t + 1
                Loop
            Workbooks(NameWIn).Worksheets("Лист1").Range(Workbooks(NameWIn).Worksheets("Лист1").Cells(j + 1, 1), Workbooks(NameWIn).Worksheets("Лист1").Cells(j + t - 1, 6)).Copy
            Workbooks(NameWOut).Worksheets(NameSh).Range("B6:G" & t + 4).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        End If
    Next j
Next i
End Sub
Ускорение копирования данных из другой книги
 
Mershik,

да, спасибо, видел я все это, иначе бы не стал занимать время..  :)

Исходя из прочитанного не ясна разница. Поскольку я использую вроде быстрый цикл For-Next, а также коснтрукцию With, которая в теории также дает уменьшение времени, если не ошибаюсь.
От того и вопрос именно к опыту форумчан - массивы суть более кардинальное решение, или же они дают 5-10% экономии ресурсов в данной конструкции. Ежели так, то мне этот вариант не подойдет, буду искать другие решения..
Ускорение копирования данных из другой книги
 
Доброго времени суток, люди добрые!

Может, кто-то подскажет, как лучше решить такую маленькую проблемку.

Есть книга, в которую вставляются отдельные данные из других открываемых книг посредством нехитрого цикла прямого копирование (ниже).
Однако со временем этих циклов стало очень много, а код стал исполняться несколько десятков минут (циклов таких - многие сотни).
Появилась мысль о замене цикла прямого копирования на работу с массивами, т.е. сначала данные в массив считать, а потом разом вставить в нужное место.

НО не могу оценить, стоит ли игра свеч, ускорит ли это копирование данных (дабы впустую не переписывать тысячи строк макросов). Отсюда вопрос - имеет ли смысл переходить на работы в циклах с массивами? Имеет ли это хотя бы в теории выигрыш по времени не менее -30%? И если да, то как можно наилучшим способом трансформировать мой пример, чтобы он в теории стал работать быстрее?

Заранее премного благодарен!
Код
For j = 1 To 13
    For i = 7 To 36
        rowPL = ThisWorkbook.Worksheets("Лист").Cells(i, 2).Value
        With mySheetsPL(j)
            ThisWorkbook.Worksheets("Лист").Cells(i, j + 5).Value = .Cells(rowPL, dCol).Value 'видимо, именно эта строка занимает наибольшее время, т.к. копируется значение каждой ячейки отдельно и последовательно
        End With
    Next i
Next j
VBA: узнать адрес отправителя outlook, на компьютере отправителя
 
БМВ, outlook. Глобальная книга предприятия - да, в exchange.
А вот касаемо сервера не отвечу, т.к. не знаю, что ответить :(
Меня смущает, что plex узнает мой адрес сам, правда, перед "узнаванием" замечаю, что он обращается к outlook, т.к. выпадает предупреждающее сообщение об отправке письма.
VBA: узнать адрес отправителя outlook, на компьютере отправителя
 
Добрый день!

Подскажите, пожалуйста, каким образом можно с помощью vba узнать почтовый адрес отправителя письма на компьютере отправителя, то есть свой собственный адрес.
Понимаю, что как-то сделать это можно, т.к. plex в почтовой рассылке это делает (в поле "отправить от имени" сразу появляется верный адрес).

Заранее спасибо!

p.s. может, возможно извлечь как-то еще и имя/телефон, т.к. в глобальном справочнике контактов данные эти есть
Изменено: AlexTM - 29.03.2019 16:55:41
Сохранение листов как файлов. Не добавляются префиксы и суффиксы
 
Проблему (префикс/суффикс) подтверждаю тоже, версия 2018.4.
Пароль на выбор элемента из списка
 
БМВ, -да-да, промежуток времени как раз критерий. То есть человек передумывает свой выбор спустя какой-то интервал.
Идею понял, спасибо!!  :)  Буду подбирать наиболее подходящий вариант!
Пароль на выбор элемента из списка
 
Появилась новая идея, но она уходит в цикл при неверном пароле. Но при верном уже работает :)
Может, этот вариант как-то можно доработать...
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
Old = ThisWorkbook.Worksheets("Лист1").Range("A1").Value
Pass = InputBox("Введите пароль:")
If Pass <> "000" Then
    ThisWorkbook.Worksheets("Лист1").Range("A1").Value = Old
    Exit Sub
End If
End Sub
Пароль на выбор элемента из списка
 
Добрый день!

Прошу помощи в маленьком "затыке"...

В ячейке имеется возможность выбора некоторого значения (да/нет) из списка.
Пользователь может менять значение, но только обладая правом (имея пароль), которое подтверждается при изменении ячейки.
Значение по умолчанию "нет", но иногда нужно менять свой выбор несколько раз туда-сюда.
Подскажите, пожалуйста, как это можно реализовать?

Моя текущая мысль уходит в цикл :(
Никак не могу придумать, как бы спросить пароль один раз и прекратить действие сразу после смены значения до момента следующего выбора.
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
Pass = InputBox("Введите пароль:")
If Pass = "000" Then
    ThisWorkbook.Worksheets("Лист1").Range("A1").Value = "ДА"
Else
    ThisWorkbook.Worksheets("Лист1").Range("A1").Value = "НЕТ"
End If
End Sub

Заранее благодарю!

p.s. пример почему-то не хочет прикрепляться..
Перехват диалоговых окон, перехват окон другого макроса
 
sokol92, БМВ,

тема сообщения и мой ответ на оффлайновую загрузку не совсем идентичны, прошу прощения за неполный ответ.

Отработка окон другим макросом - конкретная проблема, а возможность забирать данные без открытия - вопрос концептуальный, т.к. существует еще некоторое количество других обработчиков, которые вынужденно открывают файлы, коих сотни, внутри которых десятки листов и единицы переменных диапазонов. Было бы здорово отказаться от открытия и проблема отработки окон вручную просто бы померкла на фоне остальной деятельности  :)
Зная о трудности этого, тем не создавал и ограничился ровно проблемой окон, потому услышав предложение оффлайн - невзначай обрадовался как ребенок :oops:

Надеюсь, теперь прояснил, а то и правда глупо получилось, пардон.

В отсутствии прямой возможности на перехват в vba тему можно считать не актуальной, будем изворачиваться как-нибудь иначе.

Благодарю за потраченное время!
Перехват диалоговых окон, перехват окон другого макроса
 
БМВ,

скорее всего да, т.к. данных забираю много, диапазон ячеек 500*100 с форматированием.
Если существует способ забирать данные также быстро без открытия книг не сильно сложным кодом... То я буду бесконечно рад :))
Перехват диалоговых окон, перехват окон другого макроса
 
Ігор Гончаренко,

возможно, но в том случае, если определенный файл/файлы соответствует критерию, ответ на них будет другой.
То есть отрабатывать все без окон - можно, отрабатывать все с одним сценарием ответов - тоже.
Ну, ладно, будем думать, что-нибудь еще.. :) Спасибо!

p.s.
..но задача в получении доступа к отработке события одного макроса другим.
Что-то вроде этого (хоть и кривовато..):
Код
If Application.EnableEvents.vbYesNo Then
      If a = z Then
            Application.EnableEvents.vbYes
      Else
            Application.EnableEvents.vbNo
      End If
End If 
Перехват диалоговых окон, перехват окон другого макроса
 
Лунтик,

да-да, все верно, при некоторых условиях событие да/нет нужно отжимать по-разному, к сожалению..
Файлов много, загрузка идет минут 40, и отжимать все руками - просто ужас какой-то... :sceptic:

Андрей VG,

именно поэтому полностью отключить событие не могу.  :(  
Изменено: AlexTM - 13.03.2019 15:51:14
Перехват диалоговых окон, перехват окон другого макроса
 
Ігор Гончаренко,

да, код запускается в файле-сборщике, а окна "лезут" уже в каждом загружаемом файле при закрытии, так как стоит отработка события на закрытие.

Добавлено:
Может, есть что-то типа:
если приложение.книга.окно.вид_окна = vbYesNo то
        приложение.книга.окно.действие = vbNo
конец если
Изменено: AlexTM - 13.03.2019 15:32:32
Перехват диалоговых окон, перехват окон другого макроса
 
Добрый день!..

Никак не могу найти, каким образом можно макросом в одной книге перехватывать диалоговые окна в другом.

В частности, есть файл, который скопом забирает в себя данные из других файлов, однако в каждом из последних при закрытии книги обязательно отрабатывается свой код с результатами: 1) сообщение о статусе, на которое нужно отвечать просто "ок"; 2) сообщение о действии, на которое нужно отвечать "да/нет" (в частности, вариант нет).
Подскажите, пожалуйста, можно ли стандартными средствами (без доп.надстроек/программ, ибо нет прав на их установку) осуществлять данный перехват в коде файла-сборщика?

Заранее благодарю.

(была идея заранее устанавливать данный параметр в файл-сборщике, а затем в каждом файле-источнике перед закрытие проверять значение параметра и соответственно выполнять основной код или нет, но не подходит из-за своей негибкости - иногда меняются названия и/или действительно нужно отработать весь макрос вместе с диалоговыми окнами)
Парсинг, вопрос по теории
 
Добрый день!

В целях самообразования разбираюсь с кодом парсера таблиц эксель в текстовые файлы для других программ.
И никак не могу понять смысл такого массива "множитель" (или мультипликатор).

Вот, например, комментарии к массивам:

'массив значений
'количество осей
'количество значений
'множитель для данной оси - для нескольких осей в одном направлении

Массив значений - видимо, кубик самих данных.
Количество осей - оси данного кубика.
Количество значений - пока не понял, но что-то вразумительное.
А вот что делает множитель - не пойму. Подумал, что это, например, кодировка одних и тех же строк только разными кодами. Но нет, в исходнике кодировка одна.

Может, кто подскажет, где почитать теорию по формированию кубиков данных из плоских таблиц (средствами VBA).

Заранее спасибо!

p.s. может, вопрос для сведущих покажется совсем глупым, прошу простить, ибо образование совсем из другой области
Проблема при протягивании формулы со связями
 
Aticeo, не пробовали подумать над тем, чтобы извлекать данные не через "=", а через формулы типа впр, индекс/поискпоз и пр.? Вроде бы шаблон позволяет.
Изменено: AlexTM - 02.01.2019 19:13:51
Актуальный файл в папке, Функция на VBA
 
JayBhagavan,  БМВ,  ZVI, Ігор Гончаренко,

премного благодарен!

Сработали оба подхода, причем, в разы лучше, чем мои наметки...
Учимся..
Изменено: AlexTM - 26.12.2018 10:27:12
Актуальный файл в папке, Функция на VBA
 
Ігор Гончаренко,
как определить - понял, однако ж поиск теперь в том, как его верно использовать под заявленные нужды..
Цитата
Ігор Гончаренко написал:
зачем же так?
да, согласен..
Актуальный файл в папке, Функция на VBA
 
Hugo,
да, видимо, работает только с датами в именах папок..

JayBhagavan,
спасибо, будем искать!
Актуальный файл в папке, Функция на VBA
 
Добрый день, коллеги!

Существует потребность собирать данные из файлов Excel с ресурса.
Для этого нужно решить две задачи:
1 - зная начальную часть пути, найти среди вложенных папок последнюю созданную (название папки - дата в формате гггг.мм.дд)
2 - зная полный путь конечной папки получить название актуального (последнего по времени создания) файла.

Первую задачу с помощью "интернетов" решил вот так (странно, но извлекает именно последнюю созданную папку):
Код
Function Get_DirDate(path As String)
Dim a As String, D As String
D = Dir(path, vbDirectory)
While D <> ""
  If GetAttr(path & "\" & D) And vbDirectory Then
    a = D
  End If
  D = Dir
Wend
Get_DirDate = a
End Function
А теперь, собственно, мольба о помощи - можно ли как-то модифицировать верхний код так, чтобы он извлекал уже название самого последнего по времени файла?

Заранее большое спасибо!..
Версия PLEX 2018.4 от 19 октября 2018 г.
 
Николай Павлов, добрый день!

Очень большое пожелание в список улучшений при минимуме доработок - в функцию сборки листов из книг.

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

Проблема связана с тем, что сам инструмент не учитывает специфику консолидации файлов по шаблону.
В частности, приходится направлять адресатам один шаблон, тогда как внутри книги на листе есть уже выбираемая аналитика, отличающая всех адресатов друг от друга, например, код адресата или наименование. При сборке данных - берутся названия листов по наименованию адресата (или др.) из целевой ячейки внутри книги на собираемом листе. Таким образом удается избежать проблемы идентификации адресата при консолидации (количество адресатов велико).

Свои макросы, конечно, есть, но уверен, что это Plex'у будет только в плюс.  :)

Благодарю.
Александр.

Изменено - убрал скрин, что-то не загрузился.
Изменено: AlexTM - 29.11.2018 11:53:02
График (мост), необходима инструкция
 
Задание выполнено!
Невероятно! Спасибо!! :idea:  
График (мост), необходима инструкция
 
К сожалению, на работе доступа к почте не имею, но обязательно отвечу вечером.
График (мост), необходима инструкция
 
Все_просто,
Сделано!
Пардон, сделано всмысле отправлено на рассмотрение, но не решено  :sceptic:  
Изменено: AlexTM - 26.06.2018 07:03:46
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 15 След.
Наверх