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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 450 След.
Не отображается длинное число
 
Андрей_26,  а я разве писал что-то про апостроф?  Да  и Hugo, имел в виду копию значений из источника, где апостроф может отсутствовать.
По вопросам из тем форума, личку не читаю.
Не отображается длинное число
 
Цитата
Hugo написал:
Но не факт что поможет...
Поможет, только не забыть что вставлять нужно как значения через спец вставку и не  влоб Ctrl+C, Ctrl+V.
По вопросам из тем форума, личку не читаю.
Подборка функций пользователя
 
Evgenyy, Evgenyy, Как говорится, взялся ……   Декларировать для x64 кто будет?  :D
По вопросам из тем форума, личку не читаю.
Как устранить ошибку повторного запуска Excel 365?
 
Андрей, у меня этой версии нет под рукой, но всети есть упоминание о таком поведении в разных версиях, при
этом у некоторых пропало после каких-то обновлений.   по поведению предположу что при закрытии что-то мешает нормально закрыться и приложение крашится, в этот момент срабатывает автоперезапуск.  Что там у вас со скайпом?
Изменено: БМВ - 21 Фев 2020 22:34:18
По вопросам из тем форума, личку не читаю.
Форум по power bi
 
Цитата
bereteli написал:
а есть похожий форум, где такие же добрый и отзывчивые люди
таких нет  :D
По вопросам из тем форума, личку не читаю.
Как найти максимальное значение по времени из массива данных.
 
Цитата
DemonAMT написал:
Просто думал, что предложат вариант без массива.
так было б у вас везде время, а не текст, то и без массива можно было, убрав --
Можно было AGFGREGATE(14; использовать тоже без массива.
Изменено: БМВ - 21 Фев 2020 15:47:25
По вопросам из тем форума, личку не читаю.
Преобразовать картинку в цифры и наоборот, Найти решение.. макрос или иной способ.
 
Обмен произведен.
По вопросам из тем форума, личку не читаю.
Как найти максимальное значение по времени из массива данных.
 
Цитата
Андрей VG написал:
предлагаете ТСу делиться секретными наработками
нее ,только корректнее ставить задачу :-)
По вопросам из тем форума, личку не читаю.
Как найти максимальное значение по времени из массива данных.
 
DemonAMT, каков вопрос- таков и ответ. Написали б что вот формула только данных много работает долго, и ответ был бы иной.

=IF(G1="";IFERROR(MAX(--F2:INDEX(F2:$F$13;MATCH("Груз*";A2:$A$13;)-1;));MAX(--F2:F$13));"")
Изменено: БМВ - 21 Фев 2020 14:33:36
По вопросам из тем форума, личку не читаю.
Как найти максимальное значение по времени из массива данных.
 
Массивка
=IF(G1="";MAX(--F2:INDEX(F2:$F$14;MATCH(1=1;G2:$G$14="";)-1));"")
Изменено: БМВ - 21 Фев 2020 14:05:48
По вопросам из тем форума, личку не читаю.
Удаление объектов (Shape) находящихся в конкретном диапазоне листа.
 
В боевой задаче попробовал вариант с сохранением имени объекта в ячейке под объектом. Ну понятно, что удаление в 10 раз быстрее других методов. А вот при реальном использовании перед вставкой или при замене картинки, разница хоть и есть но основное время занимают остальные операции, на фоне которых уже можно и подождать.
По вопросам из тем форума, личку не читаю.
Удаление объектов (Shape) находящихся в конкретном диапазоне листа.
 
Цитата
bedvit написал:
Набросал тест на 50 тыс. фото
Приписками занимаемся :-) может 5, а не 50.

Добавил вариантs
Код
    For Each Shape In Cell.Parent.Shapes
        With Shape.TopLeftCell
            If .Row = Cell.Row Then If .Column = Cell.Column Then x = x + 1
        End With
    Next

Код
    For Each Shape In Cell.Parent.Shapes
        If Shape.TopLeftCell.Address(False, False) = Cell.Address(False, False) Then x = x + 1
    Next

нет стабильности :-)

Два прохода

Первый
Intersect 3,578125 10
Row/Column 3,386719 20
Row/Column WITH 3,496094 30
Address 3,496094 40
Address(False) 3,578125 50
Второй
Intersect 3,558594       10
Row/Column 3,351563         20
Row/Column WITH 3,34375           30
Address 3,445313         40
Address(False) 3,472656         50
Вывод - отличия на столько малы, что можно пренебрегать ими и использовать то что нравится.
Изменено: БМВ - 21 Фев 2020 11:49:04
По вопросам из тем форума, личку не читаю.
Преобразовать картинку в цифры и наоборот, Найти решение.. макрос или иной способ.
 
Окончательный вариант отправлен заказчику.
Изменено: БМВ - 21 Фев 2020 12:43:07
По вопросам из тем форума, личку не читаю.
Удаление объектов (Shape) находящихся в конкретном диапазоне листа.
 
ocet p,  
.Placement - это ничего не дает. Если закрепили что объект привязан к ячейке a1, то при вставке строки оное должно сменится на A2 …
да вопрос то не как определить границы, а как избавится от перебора всей коллекции, а замены показывают, что на фоне прочих операций -это не самое существенное.
По вопросам из тем форума, личку не читаю.
Удаление объектов (Shape) находящихся в конкретном диапазоне листа.
 
ocet p,
Вечер капитана?  :D  
Это мы с Дмитрием обсудили. Скажем так, в том решении, что у меня , будут строки вставляться, что будет означать, что все то что сдвинулось, нужно переименовывать. что  тоже можно сделать, но ух как может оказаться более затратно в итоге.

bedvit, Виталий,
Код
For Each Shape In Cell.Parent.Shapes
'Variant 1
     If Not Intersect(Shape.TopLeftCell, Cell) Is Nothing Then
        Shape.Delete
     End If
'Variant 2
'    If Shape.Top = .Top And Shape.Left = .Left Then
'         Shape.Delete
'     End If
'Variant 3
'    If Shape.TopLeftCell.Row = Cell.Row And Shape.TopLeftCell.Column = Cell.Column Then
'         Shape.Delete
'     End If
'Variant 4
'    If Shape.TopLeftCell.Address = Cell.Address Then
'         Shape.Delete
'     End If
Next

на 600 объектах и при 100 удалениях, примерно одинаковые результаты, разницей можно пренебречь. Файл боевой, не пример, по сему выкладывать не буду.
По вопросам из тем форума, личку не читаю.
Удаление объектов (Shape) находящихся в конкретном диапазоне листа.
 
Цитата
Андрей VG написал:
Как-то
Андрей, я в последнее время тест прогоняю несколько раз, часто результат отличается и сильно. Кэш там или звезды виной - не знаю.
По вопросам из тем форума, личку не читаю.
Удаление объектов (Shape) находящихся в конкретном диапазоне листа.
 
Цитата
Alec Perle написал:
если не забыть вовремя выйти из цикла
это в том случае, когда есть уверенность в уникальности объекта в ячейке.
Цитата
Alec Perle написал:
Можно внутри цикла перебора …  
это не совсем ответ на вопрос, ибо есть ячейка, есть набор объектов, то что этих ячеек не одна , это уже второй вопрос.
Цитата
bedvit написал:
Ранее делал так
Виталий, ща проверю разницу в скорости, но что-то мне подсказывает, что хрен редьки .Row .Column  intersect( не слаще.
Изменено: БМВ - 20 Фев 2020 22:26:07
По вопросам из тем форума, личку не читаю.
Делимся..., разным
 
Alemox, Ну смотря для чего это было сделано. Хотя судя по всему это просто управление положением объектов и на мой взгляд не столь интересно. А вот тут - http://www.excelunusual.com/ хорошая проработка математики, хотя в мультипликацию тоже ударились. Мне особо нравится http://www.excelunusual.com/a-2d-animated-excel-roller-coaster-video-preview/
и http://www.excelunusual.com/the-melting-snow-castle-video-preview/ тем , что это на основе графиков сделано, и весь расчет в таблицах.

Ну и помнится мне тоже было нечем заняться :-)
Изменено: БМВ - 20 Фев 2020 20:48:36
По вопросам из тем форума, личку не читаю.
Удаление объектов (Shape) находящихся в конкретном диапазоне листа.
 
Для статичной таблицы вариант Дмитрия подходит может и не идеально но весьма.  Про имена и их дубли - да это прикольно и Андрей тут прав, может оказаться что на ликвидацию последствий от шаловливых рученок или на блокировку этих действий уйдет больше ресурса, чем на варианты из #1

Для вынесения процедуры удаление в отдельную, для набора ячеек, думаю разницы в подходе нет, главное делать за минимальное количество проходов.

Попробую сделать тест по скорости на варианте 2 из №1. и сравнить.
По вопросам из тем форума, личку не читаю.
Удаление объектов (Shape) находящихся в конкретном диапазоне листа.
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
имя, включающее адрес ячейки
Дима, вариант приемлем, но ограничение есть, нельзя вставлять строки и столбцы, тем самым менять адрес :-(, а отлавливать и переименовывать - только сложнее. В этом случае хранить в скрытом столбце (строке в зависимости о того что можно вставлять) будет проще, хотя и тут есть вариант копирования и вставки строки, и тогда дублирование объекта тоже произойдет, а инфа в ячейке останется, или опять это надо отслеживать :-(

Андрей VG, Андрей, привет. Вроде и да, что там секунда, но если есть уже эти 6000 на листе, и вставляем сотню значений, то и так то время обработки заметно, а тут еще набегает. В итоге этот вариант и оставлен пока. Ну ты ж знаешь как я бережно к ресурсам отношусь :-), работа в этой компании не меняет подхода :-)

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

Как вариант, способ предложенный Дмитрием можно преобразить в запись имени объекта в ячейку в котором он находится, но желательно тогда сделать его невидимым. Это не решит вопрос с копированием, но может пригодится. А вот будет ли выигрыш в скорости при этом - сказать трудно. Может и правда коллекцию перебрать не так и долго.
Изменено: БМВ - 20 Фев 2020 09:53:31
По вопросам из тем форума, личку не читаю.
Удаление объектов (Shape) находящихся в конкретном диапазоне листа.
 
Дмитрий. Да, в моем случае так.  Таблицу вести? Ну а если рассматривать общий случай?
По вопросам из тем форума, личку не читаю.
Удаление объектов (Shape) находящихся в конкретном диапазоне листа.
 
Как, при наличии множества объектов, оптимально найти и удалить один или несколько объектов находящихся в заданном диапазоне листа?

Собственно
Для простоты объект полностью в ячейке.
вариант 1
Перебор всех объектов  и  
Код
                         If Not Intersect(Shape.TopLeftCell, Cell) Is Nothing Then
                            Shape.Delete
                         End If

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

вариант 2
Удаляем полностью ячейку со сдвигом , и вставляем пустую с обратным  сдвигом.
Смущает дерготня, которая может быть даже более медленной, чем перебор всех

Какие еше есть варианты?
По вопросам из тем форума, личку не читаю.
Копирование множества изображение (Shapes) в другую книгу. VBA
 
bedvit,  Виталий, спасибо за инфу. Да и всем принявшим участие спасибо.  Собственно к моменту создания темы было решено (как и писал, с циклом до отсутствия ошибки и счетчиком, аналогично варианту Дмитрия). С учетом того что переношу всю пачку сгруппированную, то даже если сбой, который порой таки случается при ограниченном числе циклов, а он не  прогнозируем, то просто обрабатываю ошибку мол попытка хорошая, но неудачна. Tray again :-) .

В том же решении есть еще один вопрос, который вынесу в отдельную тему и он больше к оптимизации относится. А именно, как при наличии множества объектов оптимально удалить один или несколько, находящихся в конкретном диапазоне.
Изменено: БМВ - 20 Фев 2020 07:46:48
По вопросам из тем форума, личку не читаю.
Использовать Командную кнопку для ввода значения
 
Код
CommandButton1.TopLeftCell.Offset(, 1) = 1

И так для каждой кнопке, а вот если использовать другой тип кнопки то
код один
Код
Sub Write1()
ActiveSheet.Shapes(Application.Caller).TopLeftCell.Offset(, 1) = 1
End Sub

А все кнопки запускают его.
По вопросам из тем форума, личку не читаю.
Копирование множества изображение (Shapes) в другую книгу. VBA
 
Цитата
bedvit написал:
а на win7 все отрабатывало штатно
интересное наблюдение.

Off
Однако это все больше утверждает мое суждение, что в какой-то момент стабильное решение на любимой платформе не построить.
Как считаете, что будет с файликом в котором 6000 вот того что в #13 и еще столько же такого

?
По вопросам из тем форума, личку не читаю.
Преобразовать картинку в цифры и наоборот, Найти решение.. макрос или иной способ.
 
Несмотря на сложности, которые всплыли из неожиданных мест, работа к финалу подходит. Надеюсь медведь не опорочит свое имя.
По вопросам из тем форума, личку не читаю.
Копирование множества изображение (Shapes) в другую книгу. VBA
 
Цитата
Андрей VG написал:
Если shape полностью помещается в ячейку,
Андрей, привет. в исходнике все печальнее.
и так 500 раз.
Ну то что это из ветки работа скрывать не буду. Все что надо было решено, но объем был не заявлен, да и техпроцесс только сегодня стал понятен. Просто было интересно реализовать а сделать плохо - ну не позволительно.

Цитата
Alemox написал:
а если копировать лист со всеми изображениями в файл
Ну это крайний вариант.

В результате оставил через группировку, и копирование с циклом и проверкой ошибки.

Цитата
vikttur написал:
Вот и напоролся:
ну начинааааается.  :D
Изменено: БМВ - 19 Фев 2020 20:02:36
По вопросам из тем форума, личку не читаю.
Копирование множества изображение (Shapes) в другую книгу. VBA
 
Ну в исходном для задачи еще и все изображения имеют одно и тоже имя, так что для группировки сперва еще и переименовывать пришлось.

В итоге - только через обработку ошибки, а жаль.
Та же история и решается также при множественной вставке диапазона , как изображения Range.copy , .Pictures.Paste.
Тут по факту еще все хуже ибо несколько тысяч ячеек нужно преобразовать в изображения (там Barcode) и должно отображаться не зависимо от наличия шрифта.
По вопросам из тем форума, личку не читаю.
Копирование множества изображение (Shapes) в другую книгу. VBA
 
Дмитрий(The_Prist) Щербаков, Дмитрий, да оно и собственно то, что делал - тоже что и в статье, только цикл
do … Loop While err <> 0 And errc > 10,
Вариант с группировкой в этом плане тоже подвержен этой гадости но реже и в итоге быстрее получилось. Получается что вариантов больше не очень то и есть.

Alemox, С выгрузкой,  на мой взгляд - это печалька, но за вариант тоже спасибо.
По вопросам из тем форума, личку не читаю.
Возможно ли использование массива в условиях оператора If...Then?
 
buchlotnik, Тезка, и Collection also :-)
По вопросам из тем форума, личку не читаю.
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 450 След.
Наверх