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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2010, 04:31   #1
Tim24
Пользователь
 
Регистрация: 10.12.2010
Сообщений: 11
По умолчанию Копирование строк

Доброго времени суток!
Имеется:
2 Excel документа с номенклатурой
Задача:
Копировать из документа A в документ B строчек, НО с условием, что в документе B такого наименования нет, а при совпадении наименования копирование выбранной строчки не производить.

По итогу:
Один документ с полной и не повторяющейся номенклатурой.


Прошу помоч, каким образом проще всего это решить?

Заранее спасибо!
Вложения
Тип файла: zip пример.zip (18.1 Кб, 12 просмотров)

Последний раз редактировалось Tim24; 13.12.2010 в 06:04.
Tim24 вне форума Ответить с цитированием
Старый 13.12.2010, 05:57   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

1. Подобных примеров много на нашем форуме. поищите.
2. Задача тривиальная. Но у меня нет ни малейшего желания создавать файлы с Вашими предполагаемыми данными. Прикрепите файлы с данными в несколько строк, тогда получите быстрый, а самое главное, точный ответ.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 13.12.2010, 06:05   #3
Tim24
Пользователь
 
Регистрация: 10.12.2010
Сообщений: 11
По умолчанию

Цитата:
2. Задача тривиальная. Но у меня нет ни малейшего желания создавать файлы с Вашими предполагаемыми данными. Прикрепите файлы с данными в несколько строк, тогда получите быстрый, а самое главное, точный ответ.
Прикрепил, спасибо.
Tim24 вне форума Ответить с цитированием
Старый 13.12.2010, 09:05   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Посмотрите вложение. Откройте оба файла и запустите макрос "Main".
Если бы Вы еще указали, что должно быть в итоговой строке...

Совет на будущее: не увлекайтесь объединением ячеек без особой необходимости.
Вложения
Тип файла: rar Пример_2.rar (24.4 Кб, 14 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 13.12.2010, 09:51   #5
Tim24
Пользователь
 
Регистрация: 10.12.2010
Сообщений: 11
По умолчанию

При изменении количества строчек макрос работает не корректно

Пример:

Отчистил строки файла Б, оставил одно наименование. При выполнении макроса копируются данные корректно, но по одной строчке. Т.е. сколько строчек, столько раз нужно выполнить макрос. Это как то можно решить?

Последний раз редактировалось Tim24; 13.12.2010 в 09:58.
Tim24 вне форума Ответить с цитированием
Старый 13.12.2010, 10:32   #6
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Да. Извиняюсь. Строку кода макроса
Код:
a = .Range("A8:H" & Cells(Rows.Count, 1).End(xlUp).Row).Value
замените на
Код:
a = .Range("A8:H" & .Cells(Rows.Count, 1).End(xlUp).Row).Value
т.е. пропущена точка.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 13.12.2010, 12:57   #7
Tim24
Пользователь
 
Регистрация: 10.12.2010
Сообщений: 11
По умолчанию

Спасибо большое!

Не хочу показаться наглым, но если усложнить задачу. Из Документа А в Документ Б в той же схеме, но при совпадении наименования добавлять два новых столбца(входная цена и кол-во), при отсутсвии соответсвенно добавлять наименование и данные двух столбцов из документа А(входная цена и кол-во). Такое возможно?

И ещё небольшой такой нюанс... Возможно сделать это копирование строк по алфавиту, т.е. если наименование отсутствует, оно добавлялось не в начало таблицы, а по алфавиту.
Вложения
Тип файла: rar пример2.1.rar (14.2 Кб, 9 просмотров)

Последний раз редактировалось Tim24; 13.12.2010 в 13:05.
Tim24 вне форума Ответить с цитированием
Старый 14.12.2010, 08:28   #8
Tim24
Пользователь
 
Регистрация: 10.12.2010
Сообщений: 11
По умолчанию

Отблагодарю чем смогу. Помогите пожалуйста!

Заранее спасибо.
Tim24 вне форума Ответить с цитированием
Старый 14.12.2010, 09:38   #9
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Посмотрите вложение. Откройте оба файла и запустите макрос "Main".
Т.к. в Ваших файлах нет примера желаемого результата, то я сделал так как понял. Если что не так, то укажите что именно, и прикрепите пример.
И еще: я, конечно, не осмелился изменять структуру документов, но, если это возможно, то избавьтесь от объединенных ячеек. Это позволит существенно упростить макрос.
Вложения
Тип файла: rar Пример_3.rar (17.7 Кб, 13 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 14.12.2010, 10:17   #10
Tim24
Пользователь
 
Регистрация: 10.12.2010
Сообщений: 11
По умолчанию

Отличная работа!

Осталась одна проблема-сортировка. В случае когда объём номенклатуры большой, он делится на подгруппы. Можно как то добавление строк сделать не по алфавиту, а что бы строчки добавлялись в нужную подгруппу и там уже сортировались по алфавиту?
Вложения
Тип файла: rar пример_3.1.rar (94.5 Кб, 19 просмотров)

Последний раз редактировалось Tim24; 14.12.2010 в 10:21.
Tim24 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
копирование строк с функциями Sem_Wolf Microsoft Office Excel 2 31.08.2010 17:26
копирование строк kakawkin Microsoft Office Access 2 24.06.2010 01:22
копирование строк в файл raspberry Общие вопросы C/C++ 3 12.03.2010 19:16
Копирование перекрывающихся строк strncpy LinuxUser Общие вопросы C/C++ 2 01.12.2007 15:46
Копирование строк Mikola Общие вопросы Delphi 8 21.09.2007 17:21