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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 08.10.2008, 05:35   #11
niqx
 
Регистрация: 07.10.2008
Сообщений: 9
По умолчанию

Вот. В файле "результат" нажимаем кнопочку, выбираем "Накладная".
Вложения
Тип файла: zip XYZ.zip (31.7 Кб, 21 просмотров)
niqx вне форума
Старый 08.10.2008, 07:27   #12
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

У Вас синтаксическая ошибка.
По всему коду исправьте Cell(x, y) на Cells(x, y).
После этого - код работоспособен, только выскачет ошибка при превышении количества листов в книге (у Вас цикл по листам от 1 до 100, а листов всего 2).
И еще: при определении переменных необходимо описывать каждую. Например Dim list As Integer, i As Integer, j As Integer. А при Вашей записи Dim list, i, j As Integer, тип Integer будет иметь только переменная j. Остальные - тип Variant. Также лучше присвоить тип Book As Workbook
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 08.10.2008, 09:03   #13
niqx
 
Регистрация: 07.10.2008
Сообщений: 9
По умолчанию

Спасибо огромное! Замечательный у вас форум, не только помидорами не закидали, а еще и все рассказали, помогли, причем очень вежливо! Аж неловко как-то Еще раз спасибо!
niqx вне форума
Старый 08.10.2008, 13:50   #14
niqx
 
Регистрация: 07.10.2008
Сообщений: 9
По умолчанию

Ребят, я запутался... Работает без ошибок, но функцию свою не выполняет...

Псмотрите плиз - при нажатии на кнопку выбираем файл с накладной. Программа должна сравнить каждую строчку столбца "С" из накладной (начиная с 9ой) с каждым столбцом строки 2 начиная с "М" листа "Результат". Если есть свопадение, то значение столбца "L" соответствующей строки накладной должно копироваться в строку 7 соответствующего столбца результата. Новый лист накладной - новая строка в "Результате", то есть результаты уже будут копироваться в 8ую строку каждого столбца, где есть совпадение и т.д.

Очень срочно надо...
Вложения
Тип файла: zip QWE.zip (32.2 Кб, 13 просмотров)
niqx вне форума
Старый 09.10.2008, 06:25   #15
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Посмотрите вложение. Необходимо следить за тем, чтобы одни и те же названия (заголовки) были написаны одинаково.
Совет на будущее: не располагайте код в модуле листа, если требуется работать с разными книгами. Лучше расположить код макроса в стандартном (общем) модуле и откуда угодно запускать этот макрос.
Вложения
Тип файла: rar QWE_2.rar (29.1 Кб, 58 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 09.10.2008, 17:47   #16
niqx
 
Регистрация: 07.10.2008
Сообщений: 9
По умолчанию

Спасибо! Ого, я ничего в вашем коде не понял (ну не программист я )... А как так цикл задать, чтобы он считал количество листов в накладной и всех их проверял? А то их, как правило больше 2ух Пытался for i=1 to activeworkbook.sheets.count, но он не так работает...
niqx вне форума
Старый 09.10.2008, 19:04   #17
КаМММ
Почти "Чайник"
Форумчанин
 
Аватар для КаМММ
 
Регистрация: 09.06.2008
Сообщений: 134
По умолчанию

For list = 1 To 2
заменил на
For list = 1 To ActiveWorkbook.Sheets.Count

И .Cells(r + 1, x.Column) = Cells(i, "L")
заменить на
.Cells(r + 1, x.Column) = Sheets(list).Cells(i, "L")
У меня сработало
Если второе не поменять данные добавляет не поймёшь откуда
Названия строк из накладной берёт с каждого листа
А данные (сумму) только с первого
Хотя когда названия строк в накладной не совпадает ни с одним из названий
в листе "результат" то данные просто никуда не вносятся.

Последний раз редактировалось КаМММ; 09.10.2008 в 20:00.
КаМММ вне форума
Старый 10.10.2008, 04:54   #18
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Безусловно, КаМММ прав. Ссылка на лист обязательно нужна:
Код:
.Cells(r + 1, x.Column) = Sheets(list).Cells(i, "L")
А что делать, если нет совпадения, автор не оговаривает. Вот я ничего и не делаю.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 11.10.2008, 07:39   #19
niqx
 
Регистрация: 07.10.2008
Сообщений: 9
По умолчанию

Если нет совпадения - надо ручками поправить в накладной Спасибо!
niqx вне форума
Закрытая тема


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка по 2-м столбцам по модулю... xamillion Microsoft Office Excel 2 06.10.2008 20:18
двумерный массив, нати макс.сумму по столбцам mau6 Помощь студентам 5 04.06.2008 21:14
Вывод результата по столбцам Mary_star SQL, базы данных 4 03.03.2008 13:15
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34