Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 104 След.
Расчёт дохода с несколькими условиями
 
Цитата
vikttur: Взялся за ардуинку
подсобите, как учитесь?
Я пока только мануалы подыскал http://arduino.ru/Hardware и http://imhomodels.ru/2017/03/mashinka-arduinka/
Изменено: Jack Famous - 19 Июн 2019 16:18:22
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Расчёт дохода с несколькими условиями
 
Цитата
lame: Формула ЕСЛИ для нескольких условий
Код
=ЕСЛИ(A1=B1;"а один равно бэ один";
ЕСЛИ(A1=C1;"а один равно цэ один";
ЕСЛИ(A1=D1;"а один равно дэ один";
"а не равно 3м значениям")))
Изменено: Jack Famous - 19 Июн 2019 15:46:59
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Как создать дубликат Control в UserForm через VBA ?
 
Цитата
Ігор Гончаренко: это не отвернет меня от использования метода аналогий, от единичного к общему, как одного из основополагающих в философии методов познаний
:D  :idea:
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Копирование активной книги/файла
 
Nordheim, да - FSO это не костыли, а другой способ, как и Shell. Сначала он мне не очень понравился, но потом ничего - смирился))
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Копирование активной книги/файла
 
sokol92, благодарю)) и вам  :)

UPD: а я немного с другой стороны хотел зайти, чтобы избежать этого - переписать функцию под массив пар "старый путь-новый путь", поскольку о том, как много "жрёт" создание объектов в цикле помню ещё с соревнований   :D

И снова ваш приём мне кажется намного удобнее, проще и правильнее. Сделаю отдельный модуль с функциями создания объектов  :idea: Большое спасибо!
Изменено: Jack Famous - 14 Июн 2019 13:41:20
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Копирование активной книги/файла
 
После тестов всё-таки отказался от Shell, т.к. тяжело контролировать выполнение. Функция на основе метода с FSO (по ссылке) работает отлично
Код
Function PRDX_Files_Copy(oldPath$, newPath$, Optional MsgIfTrue As Boolean, Optional MsgIfFalse As Boolean) As Boolean

On Error Resume Next
With CreateObject("Scripting.FileSystemObject"): .GetFile(oldPath).Copy newPath: End With
If Err Then GoTo er

If MsgIfTrue Then MsgBox "Файл успешно скопирован от пути «" & oldPath & "» по пути «" & newPath & "»", vbInformation, "PRDX_Files_Copy"
PRDX_Files_Copy = True: Exit Function

er: On Error GoTo 0: If MsgIfFalse Then MsgBox "Не удалось скопировать файл от пути «" & oldPath & "» по пути «" & newPath & "»", vbCritical, "PRDX_Files_Copy"
End Function
sokol92, учитывая ваши комментарии, тем более утвердился в правильности выбора - спасибо  ;)
Изменено: Jack Famous - 14 Июн 2019 13:24:40
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Копирование активной книги/файла
 
Юрий М, искал что-то пошустрее и более точное. FileCopy отлично подходит, если бы не ограничение на активную книгу. Вот думал, как обойти. Shell прекрасно справляется, но не так просто отловить ошибку.

Nordheim, вы серьёзно? Я вам об этом и пишу. И ссылку закрепил в первом сообщении. Я искал способы обойти это с помощью каких-нибудь костылей…
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Копирование активной книги/файла
 
Цитата
Nordheim: При использовании FileCopy, на сколько я понял, файл вообще может быть закрыт
ну разумеется. И именно поэтому мне прекрасно удаётся скопировать файл, находясь в другом, то есть файл должен быть НЕАКТИВНЫЙ. Об этом свойстве также написано в руководстве (увидел потом, ссылка в стартовом сообщении). А мне для макроса бэкапа нужно было копировать именно активную книгу…
Изменено: Jack Famous - 14 Июн 2019 12:37:02
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Копирование активной книги/файла
 
Короче, решил использовать для любых книг метод через Shell от ZVI. Очень шустрая штука :idea:
Изменено: Jack Famous - 14 Июн 2019 11:42:14
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Копирование активной книги/файла
 
Nordheim, разумеется)) все проверки проведены. Говорю же, если эту книгу из ДРУГОЙ сохранить (то есть, когда копируемая книга не является активной), то всё получается. При абсолютно таких же прочих условиях.
Цитата
Nordheim: пример с рабочей функцией без лишнего кода
Код
Sub Files_Copy(oldPath$, newPath$)
FileCopy oldPath, newPath
End Sub
Изменено: Jack Famous - 14 Июн 2019 11:14:05
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Копирование активной книги/файла
 
Nordheim, в качестве первой переменной передаю полное имя (путь и имя) активной книги. В качестве второй - новый путь (где должна появится копия)
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Копирование активной книги/файла
 
Доброго времени суток, Планетяне!

Есть такая функция, которая при попытке передачи oldPath=ActiveWorkbook.FullName выдаёт ошибку 70: Permission Denied. Дэ-юре это вроде как попытка скопировать защищённый файл, но дэ-факто, она просто не даёт скопировать Активную книгу, т.к. её же, но из другого файла копирует без проблем
Код
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
' КАК СРЕДСТВАМИ VBA ПЕРЕИМЕНОВАТЬ/ПЕРЕМЕСТИТЬ/СКОПИРОВАТЬ ФАЙЛ
' https://www.excel-vba.ru/chto-umeet-excel/kak-sredstvami-vba-pereimenovatperemestitskopirovat-fajl/
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Function PRDX_Files_Copy(oldPath$, newPath$, Optional MsgIfTrue As Boolean, Optional MsgIfFalse As Boolean) As Boolean
FileCopy oldPath, newPath: PRDX_Files_Copy = True
If MsgIfTrue Then MsgBox "Файл успешно скопирован от пути «" & oldPath & "» по пути «" & newPath & "»", vbInformation, "PRDX_Files_Copy": Exit Function
If MsgIfFalse Then MsgBox "Не удалось скопировать файл от пути «" & oldPath & "» по пути «" & newPath & "»", vbCritical, "PRDX_Files_Copy"
End Function
Вопрос: как обойти это без использования ActiveWorkbook.SaveAs?

UPD: с перемещением/переименованием тоже самое, только другие номера/описание ошибок. Может можно как-то "отстраниться" от книги (кроме как создавать новую), скопировать её, и "вернуться"…
Изменено: Jack Famous - 14 Июн 2019 11:15:52
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Книги и Листы. Массивы. Массив из листов закрытой книги
 
Sanja, аналогично. vikttur, bedvit, вас понял  :)

Всем большое спасибо!  :idea:
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Книги и Листы. Массивы. Массив из листов закрытой книги
 
bedvit, то есть, после закрытия книги-источника мы никак  не можем иметь её листы где-то в памяти?
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Книги и Листы. Массивы. Массив из листов закрытой книги
 
bedvit, переформулирую, вернувшись к "истокам": Можно ли передать листы из одной в книги в другую иначе как прямым копированием? И, если да, то как?
Изменено: Jack Famous - 13 Июн 2019 11:54:32
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Книги и Листы. Массивы. Массив из листов закрытой книги
 
Андрей VG, и вам здравствуйте  :)
Цитата
Андрей VG: если книга закрыта и память освобождена, то что там?
эксперимент показывает, что там пустые объекты  :D можно как-то это обойти?
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Книги и Листы. Массивы. Массив из листов закрытой книги
 
Максим Зеленский, ну раз уж так интересно…  :)
В последнее время часто пишу коды, в процессе выполнения которых открываются файлы и из забирается информация (именованные диапазоны и листы). Для получения именованных диапазонов написал функцию. Хочу такую же, но для получения листов. Потом объединю в одну. Больше интересен сам технический момент - можно-ли сохранять в памяти и получать из неё такие объекты, как листы?

В глобальном смысле "зачем" - мне всегда проще написать функцию/процедуру, котрая будет делать всю работу и просто вызывать её каждый раз, вместо того, чтобы нагромождать код. Итоговые процедуры получаюся малокодными, легко редактируемыми и удобочитаемыми
Изменено: Jack Famous - 13 Июн 2019 11:43:47
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Книги и Листы. Массивы. Массив из листов закрытой книги
 
Цитата
Sanja: Вы бы уже показали эти файлы и Ваши наработки по теме
состряпал пример
Цитата
Sanja: опишите саму задачу, а не способ
а вот тут не соглашусь, потому как задача (вопрос) как раз в способе и заключается. А именно, можно ли и, если да, то как?  :)
Все коды
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Книги и Листы. Массивы. Массив из листов закрытой книги
 
Всем привет!

По предварительным данным, "конвертация" листов в объекты происходит после закрытия книги из которой их брали. Как обойти пока не знаю…
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Книги и Листы. Массивы. Массив из листов закрытой книги
 
Sanja, у меня вызов идёт из другого модуля - может в этом дело… Буду разбираться в четверг уже  :)
Хороших выходных  ;)
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Книги и Листы. Массивы. Массив из листов закрытой книги
 
Цитата
Sanja: Не пойму о чем Вы
попробуйте передать массив листов в другой модуль (вызвать функцию, чтобы она вернула его)… Я же сказал, что внутри функции всё корректно, а проблемы начинаются при работе с результатом функции после работы самой функции (добавил полный вид функции в сообщение выше).

А ещё вместо iTemp = objSh(Sh) надо  iTemp = objSh.Item(Sh) — разве нет?
Изменено: Jack Famous - 11 Июн 2019 16:59:25
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Книги и Листы. Массивы. Массив из листов закрытой книги
 
Sanja, я тоже так сначала подумал, но чёт не получается. Смотрите:
Функция получает одномерный массив с типом данных «WorkSheet»
, но результат выполнения из другого модуля уже возвращает «Objects»
, и, если добавить в цикл отображения Debug.Print x.Name, то в функции будут перечислены имена листов, но в цикле её результата уже вызовет ошибку, потому что у объекта нет такого свойства.

UPD1: Попробовал передать словарь объектом в переменную, но тоже не вышло…
UPD2: Запись в глобальную переменную не помогла…
Изменено: Jack Famous - 11 Июн 2019 16:59:00
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Книги и Листы. Массивы. Массив из листов закрытой книги
 
Sanja, не - это я знаю. Это эмуляция того, что я выделил несколько листов и через ПКМ копирую перемещаю ("Move" ведь) в другую книгу.
Хотелось бы функцией открыть книгу в фоне, забрать все листы, как объекты в массив. Закрыть книгу и уже в основной разбираться, что подходит, а что нет.
Изменено: Jack Famous - 11 Июн 2019 15:53:20
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Книги и Листы. Массивы. Массив из листов закрытой книги
 
Доброго времени суток!

Можно ли переносить листы из одной книги в другую, не копируя , а в массиве. Имеется ввиду именно листами, а не значения листа. Может костыли какие есть?
Это код не работает
Это код работает (получение массивов по именованным диапазонам)
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Как задать константу массива
 
С.М., тогда всё огонь)) если что - напишу. Спасибо большое ещё раз и за метод и за ссылки  ;)
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Как задать константу массива
 
Цитата
vikttur: После ошибки - нет массивов
не проверил… А как переинициализировать тогда, если процедуры нет?))
Цитата
С.М.: нет необходимости в дополнительной Sub для инициализации массивных констант
что тогда делать с проблемой выше?
Цитата
С.М.: это уже будет не константа массива
согласен. Уже по-другому проверяю
Изменено: Jack Famous - 11 Июн 2019 13:55:05
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Как задать константу массива
 
UPD: при назначении ещё двух вот таким методом
Код
Public Property Get FFF_colDetControl()
FFF_colDetControl = Range("_detControl")(1).Column
End Property
получил переполнение стэка "out of stack space"… Но эти не сложно определить внутри макроса, а не константами
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Как задать константу массива
 
vikttur, не понял… Property не нужно запускать, как я понял…
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Как задать константу массива
 
С.М., ошибаетесь, я не такой  :D просто не заметил ответа…
А он, кстати, оказался самым удобным - огромное вам спасибо!  :idea: Прям вылитые константы! Подкиньте, пожалуйста, если не сложно, где почитать про это…
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Ошибка содержимого книги из-за использования сортировки
 
DopplerEffect, пожалуйста)
Цитата
DopplerEffect: куда необходимо вставлять
лучше в отдельный модуль. У меня в надстройке сидит.
Цитата
DopplerEffect: у меня просто серый экран возникает
замените ActiveWorkbook.Close True, ActiveWorkbook.Name на Workbook.Close(True,x), или на Workbooks.Close(x), или на Workbooks(x).Close, или же добавьте между 1 и 2 строкой (в коде) такую: With ActiveWorkbook:End With. Серый экран возникает, потому что Excel закрывает книгу, из которой был запущен макрос, а не ту, что должен был починить…
Изменено: Jack Famous - 10 Июн 2019 11:52:49
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 104 След.
Наверх