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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 58 След.
Фантом OLEobject при потере фокуса и удалении объекта, Что за образ остается на экране?
 
Excel 2007. Фантом появляется при активизации комбобокса и переходе на другой лист. Далее можно менять масштаб, наглядно видна привязка к экрану.
Все бы ничего, но при повторном обращении к этому фантому. Excel виснет.
БМВ если обидел, прошу извинить.

   
Фантом OLEobject при потере фокуса и удалении объекта, Что за образ остается на экране?
 
Интересная манера ответа. Вопрос на вопрос. Я не спрашиваю как мне решить задачу. Я еще раз повторю - что за фантом остается на экране? Болдыма?
Фантом OLEobject при потере фокуса и удалении объекта, Что за образ остается на экране?
 
Здравствуйте уважаемые планетяне.
Создал Combobox на листе. При потере фокуса его удаляю. Однако после создания комбика и смене листа объект удаляется, а на  экране сохраняется образ, привязанный к позиции экрана. Ни Zoom, ни перемещение ячеек на листе не меняют позицию образа.  Если кликнуть на этот образ Excel виснет. Попробовал перед удалением скрывать объект, изменяя размер в ноль, в этом случае проблем нет. Однако вопрос остался. Что за образ остается на экране?
Изменено: Vladimir Klechshuk - 22.10.2018 07:57:03
Один файл, два компьютера, разница в скорости колоссальная
 
Объектные переменные очень ресурсоемкие в сравнении с переменными одноранговыми. А раз так, то избыточное их количество будет тормозить вычисления при дифиците памяти. В практике программирования необходимо привыкать к минимализму и использовать минимум соответствующих потребностям переменных с обязательно задекларированными типами. В коротких проектах это конечно не критично. НО в случае, если у Вас в расчетах много обращений к объектам и есть циклы, то задержка будет уже заметной.
Один файл, два компьютера, разница в скорости колоссальная
 
Паша, ну шок. Так нельзя переменные называть, код просто не читабельный.  
Теперь по порядку:  
1) оператор Set только для объектных переменных, если вы меняете в ячейке только значение, зачем создавать объектную переменную, присваивать ей значение и только потом использовать этого крокодила, чтобы он передал одно единственное значение. Очень не рационально. Можно сразу присваивать соответствующее значение из ячейки листа или создавать переменную соответсвующего типа.  
2) На что стоит обратить внимание - обращение к безадресному диапазону - по умолчанию это ActiveShell со всеми вытекающими проблемами если макрос запущен не там где надо. (Set Первая_Ячейка_в_Отчёте = Range("I4"))  
 
Паша, почитайте на форумах КАК лучше всего оформлять проект. Так нельзя.
Один файл, два компьютера, разница в скорости колоссальная
 
Код копируйте при русской раскладке...
Один файл, два компьютера, разница в скорости колоссальная
 
Паша, у Вас проект написан средствами VBA или формулами? Если VBA то нужно во время выполнения всех обращений к листу выключать обновление экрана и автопересчет листа. Возможно у Вашего коллеги выключен автопересчет листа.
Задача по excel. Работа с кодами ВЕД
 
Посмотрите здесь http://www.excelworld.ru/forum/3-589-1 может Вам пригодиться...
Некорректно работают макросы, если они запускаются с флешки
 
Маршруты. У флешек скользящее имя диска. Без Вашего проекта, посоветовать что либо конкретное сложно...
[ Закрыто] Вопросы по работе форума [ЗАКРЫТА по причине поломки]
 
Здесь пример http://www.planetaexcel.ru/forum.php?thread_id=37173. Увидел бы страну адреса - не ответил бы.    
 
Так хотелось нахамить, но сдержался.
[ Закрыто] Вопросы по работе форума [ЗАКРЫТА по причине поломки]
 
IP адрес как извесно отражает страну автора топа. Есть ли возможность у движка PlanetaExcel высвечивать флаг страны вопрошающего. Почему спрашиваю - зачастили откровенно безграмотные, несуразные вопросы. Есть подозрение, что косят под иностранцев.
Ячейки с обратной связью
 
Без использования макроса Вы этого не сделаете. Макрос пишется средствами обработки событий на соответсвующем листе:  
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)  
 If Not Intersect(Range("A1")) Is Nothing Then  
    Range("A2") = "Значение"  
 End If  
 If Not Intersect(Range("A2")) Is Nothing Then  
    Range("A1") = "Значение"  
 End If  
End Sub
ОФФТОП по пятницам-"Что такое хорошо и что такое плохо"
 
По п.1. Факт - девушкам многое прощается. "Бросились" - неправильный термин. Если тема не нова, неинтересна, широко описана в Help - терпеливо ждите, не факт что все "БРОСЯТСЯ". Задайте вопрос и попытайтесь решить его сами. Даже если Вы нашли решение самостоятельно и никто не ответил, не оставляйте ТОП без ответа. Впишите ответ сами - возможно кто-то пойдет по Вашему пути и найдет Ваш ответ. На одного счастливого (в данный момент) будет больше.  
 
По п.2. Что можно сказать, да также как в жизни:  
  - панибратское, неуважительное обращение - предлоги ну-ка, быстренько тут, че эта молчок, ну и т.п здесь фантазия беспредельна  
  - попытки навязать свои правила на форуме, и нескромный спор с модератором.    
  - окровенная халява (касательно ленивых студентов).  
  - попытка решить неслабую задачу без включения собственного мозга.  
  - язык падокафф - таких сразу в бан. Язык надо уважать. Здесь хочу оговориться - для иностранцев скидка - здесь достойно уважения их старания.  
  - ну наверное откровенно безграмотно заданный вопрос. Сначала будет откровенный стеб, и если чел выдержит, возможно получит ответ на свой вопрос.
Где взять код каледнаря, который бы появлялся рядом с ячейкой?
 
Почитайте http://www.excelworld.ru/forum/3-612-1, здесь почти все варианты вызова процедуры.
Off. По мотивам Карта Планеты и кто есть Who
 
Спасибо Саша. Отпуск, командировка, праздники...
Off. По мотивам Карта Планеты и кто есть Who
 
Всем привет из Солнечного Шымкента...
изменение свойств combobox
 
Ну что могу сказать, без базовых знаний VBA лучше VBA не использовать. Ну представьте, сделает дядя за Вас проект, который будет худо бедно работать, но в какой-то момент выдаст ошибку, кто Вам ее исправит? Вы и только Вы, если взялись за написание проекта VBA, должны быть автором, ну или соавтором Вашего проекта, только в этом случае Вы не будете бессильны при возникновении непредвиденных ошибок при пользовании проекта.  
 
Если будут вопросы обращайтесь, но адаптировать задачу под Вас... Извините, не интересно.
Пересчет книги
 
Спасибо Саша, что откликнулся,  
 
Все что на виду уже пересмотрел  
 
1. Проверил как работают события книги (работают после событий листа, что странно)  
2. удалил для проверки все функции "смещ"  
3. проверил наличие связей и ссылок  
4. надстроек нет  
5. классов нет  
пересчет перед сохранением есть, но какое отношение это имеет к обработке событий?  
 
Это у меня единственный проект где используется микс из штатных формул, UDF и процедур и я давно обратил внимание, что самые невыносимо долгие задержки выполнения процедур выполняются при пересчете формул. Раньше с этим мирился, но вчера вставил процедуру из трех строк на обработку изменения значения на листе и увидел задержку больше секунды. Потому и зацепило, хочу разобраться в причине, но пока понять не могу откуда растут ноги у этого процесса...
Пересчет книги
 
Добавлю - ко всему вышесказанному пересчет этой книги выполняется даже при выполнении обработчика событий другой книги.
изменение свойств combobox
 
Посмотрите как выполнено здесь http://www.planetaexcel.ru/docs/forum_upload/post_93832.zip  
 
Не совсем правильно - вносить изменения в ячейку побуквенно...  
Сначала внести в комбобокс и только нажатием на enter или сменой фокуса перенести результат в ячейку.
Пересчет книги
 
Скирншот
Пересчет книги
 
Забыл добавить, что при пересчете видна отрисовка листа с данными на котором есть формулы (суммесли и промежуточные итоги)
Пересчет книги
 
): Примерно так, сильно потел...  
 
Карен, ну на этом примере пересчет просто не виден. Этот пересчет, о котором я толкую, виден в задержке перед выполнением процедуры обработки событий. Опишу поэтапно - вношу изменение в ячейку, идет пересчет ( команда  Application.Calculation = xlCalculationManual перед этим уже отработала по активации листа) и только затем включается отработчик события Cell_Change.  
Пример делать не стал, потому как не уверен, что повторю такой феномен.
Пересчет книги
 
В книге много процедур, которые отключают - подключают автопересчет книги.    
В книге есть несколько листов с формулами.    
Лист про который я говорил выше формул не содержит.
Пересчет книги
 
Всем привет,  
 
Столкнулся с непонятными странностями Excel. Приоритет пересчета книги почему то выше, чем приоритет выполнения событий. Как управлять этим понять не могу. К примеру ожидаю что при активации листа можно отключить автоматический пересчет, но не тут то было - сначала пересчет всей книги и только потом обработка события активации листа.  
Мало того автоматический пересчет книги командой Application.Calculation = xlCalculationManual не хочет выключаться... Шок. Как его победить?  
 
Если кто встречался с подобным неповиновением подскажите где копать?    
 
Владимир.
Как сделать, чтобы форма появлялась рядом с активной ячейкой?
 
Саша, вставь еще одну проверку, если активная ячейка за пределами видимости экрана, то позицирование по центру экрана, типа    
 
If Intersect(Activecell, ActiveWindow.VisibleRange) Is Nothing Then  
 
потому как форма не видима, если активная ячейка за границами экрана (за границами Application - работает).
как вставить значение из буфера в ячейку листа по координатам x, y?
 
Set Cell = ActiveWindow.RangeFromPoint(x, y)
Как сделать, чтобы форма появлялась рядом с активной ячейкой?
 
Не критично, но факт... Win 7 Excel 2007
Как сделать, чтобы форма появлялась рядом с активной ячейкой?
 
Саш, посмотрел код - понравилась идея. Чтобы в оконном режиме быстрее считал, попробуй ограничить границы внешнего цикла размерами окoн Application и ActiveWindow.
Как сделать, чтобы форма появлялась рядом с активной ячейкой?
 
Про бордюры копай сюда:  
 
BoardWidth = (GetSystemMetrics(5&) + GetSystemMetrics(45&) + GetSystemMetrics(7&)) / 1.333
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 58 След.
Наверх