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

Страницы: 1 2 3 След.
Перенос данных из одной таблицы в другую, Перенос данных из одной таблицы в другую
 
Как идея цикл в цикле.
В наружном цикле бежишь по строкам таблицы получателя, а во внутреннем по строкам таблицы источника. Внутри второго цикла проверка на совпадение данных по которым сравниваются строки, ну и перенос данных
Правда метод, так сразу без подготовки, жутко медленный, но если надо один раз то можно и подождать.
И еще, значения по которым идет сравнение должны быть уникальны в таблице источника, т.к. всегда будут переноситься только первое или последнее найденное значение

Про оптимизацию этого метода: 1- при совпадении значений и переносе данных, выход из внутреннего цикла; 2-если списки отсортировать, то можно будет не начинать внутренний цикл сначала; 3- если копировать значения в массивы перед обработкой, то метод получается просто улетный. Таблицы с более чем 10000 записей каждая обрабатываются за несколько секунд
Найти записи в одной таблице и занести в другую, помогите найти ошибку при использовании ВПР
 
Ааааа. Спасибо
Найти записи в одной таблице и занести в другую, помогите найти ошибку при использовании ВПР
 
Извините, случайно нажал Ctrl+Enter. А оно возьми и опубликуйся
Не успел дописать
Найти записи в одной таблице и занести в другую, помогите найти ошибку при использовании ВПР
 
Здравствуйте

Задача вроде банальная и справку уже перечитал несколько раз. Но что то не то
Как обычно надо найти записи в одной таблице и занести в другую. Таблицу поиска отсортировал по столбцу поиска. Лист (TDSheet). ВПР задал на строгое совпадение Лист (Лист2).Но часть записей не находит. Не понимаю почему

Ошибочное значение выделил оранжевым
Изменено: Anatoliy Pychev - 9 Июн 2018 18:44:12
Обработчик зависаний макроса (контроль выполнения макроса по времени)
 
Цитата
zavex написал:
короче, в powershell нарисовался скрипт, который запускается планировщиком и проверяет, если процесс excel висит дольше 15 мин - убивает процесс и перезапускает документ excell заново.
процесс excel, при проверке из сторонней программы, может выдать сигнал занято по многим причинам. Например обновление давно прошло и пользователь вошел в режим редактирования ячейки.

Смотрите в сторону #16. БМВ Вам дал готовый алгоритм
Цитата
zavex написал:
Уважаемые, прошу ваших вариантов, желательно готовых
Весь код который Вам нужен уже есть в этой ветке, Вам осталось только собрать все воедино.
Обработчик зависаний макроса (контроль выполнения макроса по времени)
 
Цитата
БМВ написал:
вот как отловить событие успешного обновления
Проверять изменения на листе который должен обновиться в ячейке которая обязательно измениться. Или заведомо, перед запуском обновления, изменить некоторую ячейку на свой текст.
Если обновление это фоновый процесс, и сообщения могут достучаться до Excel, я бы проверял по таймеру. См. вложение
Изменено: Anatoliy Pychev - 1 Июн 2018 03:20:31
Помогите определить невидимый символ, и произвести замену во всем файле.
 
Думаю Вам стоит собрать все рекомендации в один файл и циклом пробежать по всем ячейкам и по-удалять все не нужные символы
например так
Код
Sub test()
   On Error Resume Next
   Dim cell As Range
   For Each cell In ActiveSheet.UsedRange
      If Len(cell) > 0 Then
         cell = Replace(cell, Chr(9), "")
      End If
   Next cell
End Sub

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

Добавить лист не отвлекая пользователя
 
Цитата
Sanja написал:
Подозреваю, что на них будет храниться однотипная информация
Да однотипная и на время сеанса работы будут постоянно добавляться строки в разные листы
За определенное время будут отслеживаться изменения данных и вноситься в определенные листы. Пользователь будет подключать маркеры к слежению и отключать на одном главном листе. Соответственно что бы не плодить ненужное количество листов сразу (когда известно общее количество маркеров, может быть до 800), было принято решение добавлять лист только в случае подключения маркера  или нескольких маркеров к слежению. Конечно я поставлю ограничение на количество одновременно отслеживаемых маркеров. Но в зависимости от мощности компьютера это ограничение должно регулироваться.
Почему все не на одном листе? Потому, что так потом удобнее пользоваться данными (фильтровать, сортировать). Я так думаю.
Добавить лист не отвлекая пользователя
 
Цитата
vikttur написал: Application.ScreenUpdating = False - это что?
Если я правильно понимаю это отключение обновления экрана. Но на команду добавления листа это не работает.
Добился одного моргания (см вложение).
Специально в коде добавления оставил одну команду  заливки, для визуального эффекта. Но и без нее одно моргание существует. Можно сравнить добавление и удаление (во вложенном файле).  Удаление происходит без моргания

Считаю задачу решенной. Всем большое спасибо
Добавить лист не отвлекая пользователя
 
Цитата
vikttur написал:
похоже, логика работы хромает
??? Возможно , ведь я могу сначала по добавлять все нужные листы, а потом делать необходимое заполнение в фоне. И тогда будет только одно моргание.
Спасибо. Так и поступим.
Я так понял другого варианта кроме сохранять и активировать активный лист, нет

Всем спасибо большое
Добавить лист не отвлекая пользователя
 
Цитата
vikttur написал:
Не забывайте в конце процедуры освобождать память:
За это отдельное спасибо
Прочитал и сказал себе: "В конце процедуры все локальные переменные освобождаются" , а потом спохватился, привязанные не освобождаются
Надо прошустрить код
Добавить лист не отвлекая пользователя
 
Sanja Спасибо большое

Задача состояла в том, что бы excel не переключался, а он переключается между листами
Возможно у Вас компьютер быстрый и вы видите только одно моргание. Но если между добавлениями листов будет работать какой-то код, тогда переключение будет визуально длинным и будет выглядеть как мерцание.
Изменено: Anatoliy Pychev - 5 Май 2018 13:11:17
Добавить лист не отвлекая пользователя
 
Sanja спасибо. Я уже к этому тоже пришел. Но это не решает моей задачи. Т.к. я добавляю сразу несколько листов (количество будет определяться действиями пользователя). Хотел избежать мерцания экрана.
Добавить лист не отвлекая пользователя
 
Здравствуйте
У меня стоит задача программно добавить несколько листов, но это надо сделать не  отвлекая пользователя, т.е. что бы excel не переключался на добавляемый лист
Делаю это таким кодом
Код
   Application.ScreenUpdating = False
   Application.EnableEvents = False
   Set wks = ThisWorkbook.Sheets.Add(, Worksheets(Worksheets.count), 1, XlSheetType.xlWorksheet)
   With wks
      .Name = psName
      .Range("A1:S1").Interior.Color = rgbGold
   End With
   Application.EnableEvents = True
   Application.ScreenUpdating = True
Но Excel все равно переключается на новый лист
Подскажите пожалуйста. Может есть способ запретить это?
Во вложении пример
Как сохранить части из pdf-файла?
 
Цитата
hellm написал:
Вот подумалось. А может наоборот? Считать все текстовые части и попытаться сгенерировать DataMatrix?
Можно и так. Обязательно уже где-то есть код для excel для генерации QR

Все зависит от поставленной задачи
Как сохранить части из pdf-файла?
 
Для трех марок вашего pdf получаю 6 файлов (3 - ppm и 3 - pbm)
переконвертировал для Вас читаемый формат. Интересно что в данном случае bmp получился экономичнее чем jpeg (наверное из за монохромности и размера)
Также в архиве есть bat-ник для запуска конвертации
Изменено: Anatoliy Pychev - 27 Апр 2018 19:20:19
Как сохранить части из pdf-файла?
 
Цитата
hellm написал:
Нашел. Но как выгружать картинкой одну марку, а не все три (или сколько там их будет)?
Судя по цитате, Вы не попробовали выгрузку картинок, или попробовали но не добились результата
Т.к. он выгружает все картинки отдельно и последовательно. Правда из вашего файла они выгружаются только в формате .pbm Потребуется конвертация

На самом деле Ваш PDF не состоит и картинок(марок) целиком. Каждая марка в PDF состоит из нескольких объектов - картинок (QR code и ...),  текста.
Поэтому без танцев программно вытащить марку целиком не получится.

Лично я вижу путь такой (в зависимости от задач)
  1. Использовать api AdobeReader (поищите в нете запрос как прочитать pdf из excel- ответов море). Он читает pdf как DOM документ
  2. Использовать набор библиотек которые я порекомендовал выше
Но эти 2 пути Вам позволят получить части одной марки (т.е. отдельно картинку, текст). Далее учитывая, что марки имеют одинаковый формат вы можете генерировать картинку марки программно на форме в Excel и с формы снимать jpeg.
Либо из pdf делать картинку целиком, и по маркерам крестам, которые можно получить из варианта 1 или 2  вырезать кусок картинки. Тогда нужно будет найти еще консольную прогу для вырезки картинки из картинки по координатам.

Так что все возможно.
можно даже читать QR code и выдавать содержимое
Изменено: Anatoliy Pychev - 27 Апр 2018 18:16:37
Часть букв в другой кодировке, Сохраняю в csv часть букв в странной кодировке
 
Через код все отлично получается
только у Вас в содержимом присутствуют кавычки, их надо экранировать или заменить
Во вложении пример который создает CSV файл в формате UTF-8 (см. код)
Для примера, я кавычки заменил на обратный апостроф
Получилось ВОТ
Код
"Было <a class=`dotted-link` href=`/pro-vremja/` title=`Анекдоты про время`>время</a>, когда я очень хотел <a class=`dotted-link` href=`/pro-jelanie-zhenitsya/` title=`Анекдоты про женитьбу`>жениться</a>. Теперь я всё понял и просто хочу <a class=`dotted-link` href=`/pro-mashiny/` title=`Анекдоты про машины`>машину</a>."
"<a class=`dotted-link` href=`/pro-muzhchin/` title=`Анекдоты про мужчин`>Мужик</a> обнимает свою <a class=`dotted-link` href=`/pro-mashiny/` title=`Анекдоты про машины`>машину</a>, целует капот, дверцы. Плачет, ну не может сдержатся, ревет. Другой мужик у него спрашивает:   — Продаешь что ли?   — Да, нет — <a class=`dotted-link` href=`/pro-zhenu/` title=`Анекдоты про жену`>жена</a> <a class=`dotted-link` href=`/pro-prava/` title=`Анекдоты про права`>права</a> получила!!!"
Как сохранить части из pdf-файла?
 
Уважаемый hellm
Если я правильно понял, то тут Вы спрашивали как прочитать текст с картинки присланной в PDF.
Так вот, ваш PDF можно сконвертировать в текстовый формат конвертер можно найти здесь
Далее просто читайте текстовый файл и вытаскивайте данные
Также там можно найти и программу выгрузки изображений из pdf
Мне понравился этот конвертер, т.к. он легкий - без графической оболочки. работает с командной строки. Поэтому его можно вызывать прямо из Excel
Я с его помощью написал конвертер из PDF в XML

прикладываю вам пример вашего  PDF переконвертированного в txt
Изменено: Anatoliy Pychev - 27 Апр 2018 10:08:55
Предупреждение о наличии дубликата в таблице
 
Цитата
Dyroff написал:
Работает отлично!
Не просто отлично, ОООЧЕНЬ отлично
Проверил на 500 000 записей. Даже не моргнул, выдал результат
Юрий М большое Вам спасибо

Была у меня подобная задача - выделить все дубликаты в столбце. Так я отсортировал массив и пробежал по нему один раз. Единственный тормоз - это перенос данных в массив
Закрытие ВСЕХ окон в проекте VBA
 
Цитата
Diana Tailor написал:
p.s. mz-tools старой бесплатной версии ни у кого не осталось?
с этим помогу
https://drive.google.com/open?id=13qyJElSlFUFCef0Z7J8SsEfJTpVMRrBV

Версия 3
обмен данными Excel - сайт., поиск правильного пути для организации обменных процессов между Excel и сайтом
 
Excel больше как хранилище данных. Если и будут какие-то формулы, то очень простые.
Все это организовано, для быстрого изменения данных на разных сайтах и торговых площадках для одной фирмы.

По поводу заказа. Я буду сам писать и разбираться. Предыдущее, что описано. тоже я писал. И оно сейчас успешно работает, но только с одним сайтом (такая стояла задача тогда). Если делать под несколько, то это нагрузка на Excel. А я хочу его освободить.

Подскажите. Обмен данными между Excel и сервером делать через Socket или windows сообщения или что то еще чего я пока не знаю
обмен данными Excel - сайт., поиск правильного пути для организации обменных процессов между Excel и сайтом
 
Здравствуйте.

Итак.
Есть готовое работающее приложение (как Excel файл) с листом данных и организованным обменом данными с сайтом.
Обмен организован так: Пользователь выбирает позиции и нажимает на кнопку отправить. Макрос отправки составляет строку запроса и делает вызов стороннего скрипта VBS, не дожидаясь от него ответа. таким образом возможно отправить подряд несколько запросов. VBS скрипт делает запрос к сайту и получив ответ делает попытку заполнить определенную ячейку на листе в Excel файле. Если попытка не удачна (Excel занят) ждем некоторое время и снова пытаемся отдать ответ. И так пока не отдадим. В рабочем файле Excel, в свою очередь запущен таймер, по которому проверяются ячейки ответов. Если ответа долго нет, то макрос убивает соответствующий процесс VBS скрипта и запускает новый. Такая себе защита. Такой подход позволил развязать руки пользователю, т.е. он может работать с файлом, а в это время происходит обмен (время между вводом данных). Но как показала практика это не комфортно.
Налицо несколько явных проблем. 1. - Если Excel аварийно закроется, то в системе останутся вечные процессы. 2. - Из за временных нестыковок некоторые запросы могут быть запрошены несколько раз, хотя ответ уже получен, но не успел дойти до адресата. ... + Сложность кода

Идеи
Хочется упростить и разделить код. А именно. Хочется сделать приложение которое будет в фоне обновлять данные. Например пользователь изменил данные в ячейке, макрос change отравил сообщение (я думал через sendMessege) изменить такое поле программе, которая возьмет на себя все заботы про обмену данными и вернет ответ (тоже как сообщение например). А excel прочитает, когда будет готов. Плюс думаю организовать весь код Excel как надстройку.
Для этого
Смотрел в сторону организации программы севера, т.к. хочется консольное приложение.

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

Спасибо  
Переход планеты на защищённый протокол
 
Цитата
БМВ написал:
Может пока объяву вывесить, что до устранения проблем обходное решение использовать  http://www.planetaexcel.ru  вместо  https://www.planetaexcel.ru
Поддерживаю. Под http зашел без проблем.
Готов предложить помощь в тестировании как пользователь под win xp 32  
Переход планеты на защищённый протокол
 
Не смог войти в свой аккаунт с системы win xp 32 через идентификацию по google аккаунту
Выдало ошибку



Чтобы написать это сообщение зашел с чужого комп. win 10 браузер chrome

Что можно поправить?
Изменено: pton - 15 Фев 2018 16:40:26
Решение математической системы уравнений для разных значений Х с помощью формулы Excel
 
И первый блок ЕСЛИ имеет только значение для Истины, т.е. только когда Х<0 . Третья формула для Х>1 не прописана поэтому и ошибка.
Цитата
Arturus написал:
SIN*A2 - вот это что за конструкция такая?
И это правда. Поправить на sin(A2)
[ Закрыто] Нужна формула, помогите пожалуйста., Формула легкая, просто я в программе не очень разбираюсь
 
файл с примером приложи
PDF vba с использованием библиотек, Читать PDF с использованием доп библиотек
 
я делал через xpdfreader там есть конвертер в текст, даже с сохранением табличной структуры (отступами). Он бесплатный
Если PDF нормальный (т.е.  не картинка ) то все работает хорошо
Далее читаешь как обычный .txt файл  
Получить строку с сайта в Excel VBA
 
Игорь Спасибо, а то я стучался в другой адрес.
Задача не моя HО сейчас попробую. Самому интересно.
Получить строку с сайта в Excel VBA
 
API есть , но свободного доступа к нему я не увидел.
Так что действуйте по выбранному Вами плану изначально. Попробуйте сохранить результат в текстовый файл . и открыть посмотреть, что приходит
И дальше уже строить план.

Я пробовал получить доступ через WinHttp.WinHttpRequest.5.1 но не смог получить  заголовки Coocie. Поэтому не смог добраться до страницы результата
Страницы: 1 2 3 След.
Наверх