Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.07.2014, 09:56   #1
Евгений Таб
Форумчанин
 
Аватар для Евгений Таб
 
Регистрация: 09.08.2013
Сообщений: 202
По умолчанию Обновляемая БД (help)

Добрый день!

Прошу помощи в реалицизии таблицы.

Во вложении два файла.
Юзер и Ценрализованный

Задача.

Централизованный файл не имеет макросов и лежит в папке (xls)
Юзер файл имеет макрос который по запуску открывает файл "Централизованный" и в случае если в столбце А (файл Юзер) есть новое значение/ячейка (которого нет в файле Централизованный также в столбе А), он копирует эту строку(добавляет снизу). На примере этих файлов ячейка со значенгием 6437 (Юзер), должна быть скопирована в файл Централихзованный - сама строка со всеми данными, т.к она там отсутствует. Также было бы отлично если макрос копировал массово несколько новых строк).

Донат никто не отменял. Нужно реализовать. Спасибо!!!
Вложения
Тип файла: zip Desktop.zip (11.2 Кб, 18 просмотров)
Евгений Таб вне форума Ответить с цитированием
Старый 13.07.2014, 12:00   #2
kalbasiatka
Форумчанин
 
Регистрация: 21.10.2012
Сообщений: 208
По умолчанию

Посмотрел и не нашёл у юзера макросов. Наверно его надо написать?

вариант .
Вложения
Тип файла: rar Юзер.rar (16.3 Кб, 17 просмотров)

Последний раз редактировалось Stilet; 13.07.2014 в 14:35.
kalbasiatka вне форума Ответить с цитированием
Старый 13.07.2014, 14:24   #3
Евгений Таб
Форумчанин
 
Аватар для Евгений Таб
 
Регистрация: 09.08.2013
Сообщений: 202
По умолчанию

Цитата:
Сообщение от kalbasiatka Посмотреть сообщение
Посмотрел и не нашёл у юзера макросов. Наверно его надо написать?
Браво! Изучаю код.

Теперь немного сложнее. Завершающий штришок)

Что если Юзер поменял данные в уже перемещенный в Центр. строчку?
Нужно проверить массивчик и свлучае измены, изменить эту ячейку (ячейки) и показать в msgbox какие строки он поменял. Пример во вложении.

Ячейка B2 поменялась, была вектор стала колбаса.(может быть несколько значений)
Нужно чтобы он перенес это изменение в Ценролизованный файл и вывел в msgbox такое сообщение "Данные строки 4532 изменены", или несколький строк в случае измены.
Вложения
Тип файла: zip Desktop.zip (28.2 Кб, 16 просмотров)
Евгений Таб вне форума Ответить с цитированием
Старый 13.07.2014, 19:09   #4
kalbasiatka
Форумчанин
 
Регистрация: 21.10.2012
Сообщений: 208
По умолчанию

Цитата:
Сообщение от Евгений Таб Посмотреть сообщение
Теперь немного сложнее.
Помощь - бесплатно, задания - за деньги.
kalbasiatka вне форума Ответить с цитированием
Старый 13.07.2014, 19:41   #5
Евгений Таб
Форумчанин
 
Аватар для Евгений Таб
 
Регистрация: 09.08.2013
Сообщений: 202
По умолчанию

Цитата:
Сообщение от kalbasiatka Посмотреть сообщение
Помощь - бесплатно, задания - за деньги.
проверьте личку
Евгений Таб вне форума Ответить с цитированием
Старый 13.07.2014, 22:36   #6
kalbasiatka
Форумчанин
 
Регистрация: 21.10.2012
Сообщений: 208
По умолчанию

Цитата:
Сообщение от Евгений Таб Посмотреть сообщение
Что если Юзер поменял данные в уже перемещенный в Центр. строчку?
Сделать подобное не сложно, если знать как) У меня реализовано сравнение массива со словарём. Ключи словаря формируются по первой колонке. Если будут изменения в ней, то строка просто добавится в конец таблицы. Как искать строки? Есть в файле что-то постоянное?
Да и с сообщениями муть какая-то, ведь если человек сам что-то изменил зачем ему об этом говорить?
А мой предыдущий пост должен был подзадорить на самостоятельную работу.

Последний раз редактировалось kalbasiatka; 13.07.2014 в 23:57.
kalbasiatka вне форума Ответить с цитированием
Старый 14.07.2014, 04:08   #7
Евгений Таб
Форумчанин
 
Аватар для Евгений Таб
 
Регистрация: 09.08.2013
Сообщений: 202
По умолчанию

Цитата:
Сообщение от kalbasiatka Посмотреть сообщение
Сделать подобное не сложно, если знать как) У меня реализовано сравнение массива со словарём. Ключи словаря формируются по первой колонке. Если будут изменения в ней, то строка просто добавится в конец таблицы. Как искать строки? Есть в файле что-то постоянное?
Да и с сообщениями муть какая-то, ведь если человек сам что-то изменил зачем ему об этом говорить?
А мой предыдущий пост должен был подзадорить на самостоятельную работу.
Можно без сообщений) Постоянное что есть в таблице это столбец А,
после того как макрос проверки уникальности чисел сработал (ваш первый макрос)
и добавил строки, после этого код (который нужно прописать далее) сравнивает числа и изменения с столбах B:J первого и второго файла (Юзер и Центролизованный) по полю в cтолбе А. И изменяет их в файле Центролизованный. Вот и все. Если "несложно" жду вариантов))))

Спасибо.
Евгений Таб вне форума Ответить с цитированием
Старый 14.07.2014, 06:43   #8
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

А какое (приблизительно) количество строк в таблицах обоих файлов?
Можно просто в цикле пройтись по значениям столбца "A" файла "Юзер", искать это значение в столбце "A" файла "Ценролизованный" и, в случае обнаружения такого значения, копировать целиком строку вместо существующей (не важно, есть ли там изменения, или нет). А в случае, если такого значения нет - добавлять строку в конец таблицы.
Чем шире угол зрения, тем он тупее.
SAS888 на форуме Ответить с цитированием
Старый 14.07.2014, 07:05   #9
Евгений Таб
Форумчанин
 
Аватар для Евгений Таб
 
Регистрация: 09.08.2013
Сообщений: 202
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
А какое (приблизительно) количество строк в таблицах обоих файлов?
Можно просто в цикле пройтись по значениям столбца "A" файла "Юзер", искать это значение в столбце "A" файла "Ценролизованный" и, в случае обнаружения такого значения, копировать целиком строку вместо существующей (не важно, есть ли там изменения, или нет). А в случае, если такого значения нет - добавлять строку в конец таблицы.
Да, вот так тоже будет работать)

Строк по идее будет сначала мало а потом много где то 350.
Реально сделать?
Евгений Таб вне форума Ответить с цитированием
Старый 14.07.2014, 07:19   #10
Евгений Таб
Форумчанин
 
Аватар для Евгений Таб
 
Регистрация: 09.08.2013
Сообщений: 202
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
А какое (приблизительно) количество строк в таблицах обоих файлов?
Можно просто в цикле пройтись по значениям столбца "A" файла "Юзер", искать это значение в столбце "A" файла "Ценролизованный" и, в случае обнаружения такого значения, копировать целиком строку вместо существующей (не важно, есть ли там изменения, или нет). А в случае, если такого значения нет - добавлять строку в конец таблицы.
Я так понимаю количество строк будет влиять на скорость макросов?
Ничего страшного))
Евгений Таб вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц