|
|
|
Генератор заказов - устранение ошибок.
|
|||
|---|---|---|---|
|
#18+
Привет всем! Помогите, пожалуйста, новичку решить некоторые проблемы (файл прилагается). Задача такая. Необходимо из прилагаемого файла СТЕКЛО.XLS создать 2 новых файла (заказы), в одном - те данные, что за наличный расчет, в другом - по безналу. Это я сделал, просидев неделю над справочниками, но остались некоторые моменты, для решения которых мне, на данном этапе, не хватает знаний. Проблема №1. При первом запуске макроса из "ЗАКАЗ.XLS" происходит остановка выполнения программы на строке Set PageWb = Workbooks(wbName).Sheets("Бланк заказов") (см. прилагаемую программу), хотя проверку я вроде сделал. При повторном запуске макроса (когда создаваемые файлы УЖЕ существуют) всё чудесно работает. Где ошибка - не пойму. Проблема №2. Никак не могу приделать этот макрос к кнопке на ПЕРВОМ листе документа (рядом с инструкцией). Пробовал подключать мой макрос из модуля через CALL - не работает. Может проблема в Офисе97, под которым я работаю? Приходится запускать макрос через панель инструментов, но для простых юзеров кнопка всё же лучше... Проблема №3. Сортировка данных в заказах по номеру заказа. Использовал метод сортировки: ' ### Сортировка данныз по номеру заказа в ZAKAZ-NAL.XLS PageWb.Range(Cells(J1, 1), Cells(J - 1, 7)).Select Selection.Sort Key1:=Cells(J1, 1), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom PageWb.Cells(1, 1).Select ' снятие выделения области Не получилось. Программа останавливается, а ошибку определить не может! Помогите, пожалуйста. Вот срочно потребовалось для работы сделать, а программистов у нас нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2007, 12:49:07 |
|
||
|
Генератор заказов - устранение ошибок.
|
|||
|---|---|---|---|
|
#18+
Alex37 По поводу проблемы №3. У Вас переменная J1 встречается в коде первый раз именно в сроке Код: plaintext т.к. по сути это номер строки, то нужно где-то ранее присвоить ей значение >0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2007, 15:34:26 |
|
||
|
Генератор заказов - устранение ошибок.
|
|||
|---|---|---|---|
|
#18+
Возможно Вы имели в виду не J1 а J - 1 и просто ошиблись в наборе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2007, 16:51:42 |
|
||
|
Генератор заказов - устранение ошибок.
|
|||
|---|---|---|---|
|
#18+
По проблеме №1: если в каталоге еще нет файлов "ZAKAZ-BEZNAL.XLS" и "ZAKAZ-NAL.XLS" то переменные wbName и wbName2 получают значение "" (пустая строка) (в строках 48 и 61 соответсвенно), а потом в стр.74 и 75 эти переменные используются в качестве названий книг для инициализации объектов: Код: plaintext 1. в строке 59 (после ActiveWorkbook.SaveAs wbFullName ) добавить wbName = Dir(wbFullName) , а в строке 72 (после ActiveWorkbook.SaveAs wbFullName2 ) добавить wbName2 = Dir(wbFullName2) . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2007, 17:57:59 |
|
||
|
Генератор заказов - устранение ошибок.
|
|||
|---|---|---|---|
|
#18+
lena_#### Alex37 По поводу проблемы №3. У Вас переменная J1 встречается в коде первый раз именно в сроке Код: plaintext т.к. по сути это номер строки, то нужно где-то ранее присвоить ей значение >0 Нет есть, в описании Dim... Код: plaintext Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2007, 18:01:39 |
|
||
|
Генератор заказов - устранение ошибок.
|
|||
|---|---|---|---|
|
#18+
Alex37 Но в выложенном Вами файле я этого не нашла. Либо полохо искала, либо вы выложили не тот вариант :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2007, 18:07:11 |
|
||
|
Генератор заказов - устранение ошибок.
|
|||
|---|---|---|---|
|
#18+
lena_####Возможно Вы имели в виду не J1 а J - 1 и просто ошиблись в наборе И тут все верно. J1, как я указал выше, хранит координаты строки с первой записью. J-1 - это номер последней последней строки с введенными данными. А в строке J вводятся суммарные значения: "Количество" и "Общая площадь" Я применяю "паскалевский" подход, т.к. не умею ещё работать, например, со столбцами данных. Поэтому пришлось расчетным путем искать координаты последней записи чтобы потом отсортировать данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2007, 18:12:20 |
|
||
|
Генератор заказов - устранение ошибок.
|
|||
|---|---|---|---|
|
#18+
lena_#### Alex37 Но в выложенном Вами файле я этого не нашла. Либо полохо искала, либо вы выложили не тот вариант :) Точно. Я виноват. Не тот вариант выложил. У меня из тут десятка два уже набралось... Но и код с сортировкой я закоментарил... :) Вот вариант, про который я имел в виду. Ещё раз извините! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2007, 18:18:10 |
|
||
|
Генератор заказов - устранение ошибок.
|
|||
|---|---|---|---|
|
#18+
vbaproПо проблеме №1: если в каталоге еще нет файлов "ZAKAZ-BEZNAL.XLS" и "ZAKAZ-NAL.XLS" то переменные wbName и wbName2 получают значение "" (пустая строка) (в строках 48 и 61 соответсвенно), а потом в стр.74 и 75 эти переменные используются в качестве названий книг для инициализации объектов: Код: plaintext 1. в строке 59 (после ActiveWorkbook.SaveAs wbFullName ) добавить wbName = Dir(wbFullName) , а в строке 72 (после ActiveWorkbook.SaveAs wbFullName2 ) добавить wbName2 = Dir(wbFullName2) . Точно! Добавил указанные строки - все заработало! Спасибо большое. Сам бы никогда не догадался - это уж точно! :) Правда, я не совсем понял почему не работало без них? Ведь эти строки у меня чуть выше прописаны. Эти "wbName" и "wbName2" обнуляются? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2007, 18:30:29 |
|
||
|
Генератор заказов - устранение ошибок.
|
|||
|---|---|---|---|
|
#18+
Alex37Правда, я не совсем понял почему не работало без них? Ведь эти строки у меня чуть выше прописаны. Эти "wbName" и "wbName2" обнуляются? например, wbName = Dir(wbFullName). Когда файла с именем wbFullName еще нет, то wbName получает пустую строку, и дальше нигде не получает значения, хотя видно, что должна :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2007, 19:07:54 |
|
||
|
Генератор заказов - устранение ошибок.
|
|||
|---|---|---|---|
|
#18+
Alex37 У меня Ваш код заработал после замены: Код: plaintext 1. 2. 3. на: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2007, 19:19:53 |
|
||
|
Генератор заказов - устранение ошибок.
|
|||
|---|---|---|---|
|
#18+
Alex37Проблема №2. Никак не могу приделать этот макрос к кнопке на ПЕРВОМ листе документа (рядом с инструкцией). Пробовал подключать мой макрос из модуля через CALL - не работает. Может проблема в Офисе97, под которым я работаю? Приходится запускать макрос через панель инструментов, но для простых юзеров кнопка всё же лучше...Вот, попробовал сделать кнопку, вроде работает. И под 97-м тоже. Хотя Код: plaintext Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2007, 19:40:18 |
|
||
|
Генератор заказов - устранение ошибок.
|
|||
|---|---|---|---|
|
#18+
lena_#### Alex37 У меня Ваш код заработал после замены: ........................... на: Код: plaintext 1. 2. у меня тоже получилось, работает вот так Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2007, 11:21:39 |
|
||
|
Генератор заказов - устранение ошибок.
|
|||
|---|---|---|---|
|
#18+
vbapro Alex37Проблема №2. Никак не могу приделать этот макрос к кнопке на ПЕРВОМ листе документа (рядом с инструкцией). Пробовал подключать мой макрос из модуля через CALL - не работает. Может проблема в Офисе97, под которым я работаю? Приходится запускать макрос через панель инструментов, но для простых юзеров кнопка всё же лучше...Вот, попробовал сделать кнопку, вроде работает. И под 97-м тоже. Хотя Код: plaintext Код: plaintext 1. К сожалению файл скачивается, но не ZIP. Не могли бы повторно его выложить? Буду очень признателен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2007, 11:24:52 |
|
||
|
Генератор заказов - устранение ошибок.
|
|||
|---|---|---|---|
|
#18+
вот RAR ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2007, 11:43:19 |
|
||
|
Генератор заказов - устранение ошибок.
|
|||
|---|---|---|---|
|
#18+
vbaproвот RAR Спасибо, скачал, посмотрел. Ведь дома делел также и другие варианты, через CALL (там Офис97) - не получилось. Кнопка работала некоректно. Сейчас попробовал под Excel 2003 - работает. Кнопку подключил. Дома попробую под Excel 97 запустить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2007, 13:32:43 |
|
||
|
Генератор заказов - устранение ошибок.
|
|||
|---|---|---|---|
|
#18+
vbapro.................................. а в строке 72 (после ActiveWorkbook.SaveAs wbFullName2 ) добавить wbName2 = Dir(wbFullName2) . А не подскажете, как при сохранении файла, в имя файла включить текущую дату, типа ZAKAZ-19-02-2007.XLS Где-то видел на форуме, а теперь вот понадобилось самому - найти не могу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2007, 13:38:46 |
|
||
|
Генератор заказов - устранение ошибок.
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2007, 13:42:22 |
|
||
|
Генератор заказов - устранение ошибок.
|
|||
|---|---|---|---|
|
#18+
Alex37 vbapro.................................. а в строке 72 (после ActiveWorkbook.SaveAs wbFullName2 ) добавить wbName2 = Dir(wbFullName2) . А не подскажете, как при сохранении файла, в имя файла включить текущую дату, типа ZAKAZ-19-02-2007.XLS Где-то видел на форуме, а теперь вот понадобилось самому - найти не могу... Код: plaintext 1. но для сортировки по датам лучше: Код: plaintext 1. KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2007, 13:44:18 |
|
||
|
Генератор заказов - устранение ошибок.
|
|||
|---|---|---|---|
|
#18+
KL (XL)но для сортировки по датам лучше: Код: plaintext 1. KL [MVP - Microsoft Excel] я тоже за :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2007, 13:50:37 |
|
||
|
Генератор заказов - устранение ошибок.
|
|||
|---|---|---|---|
|
#18+
Alex37 Попробуй ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2007, 14:18:01 |
|
||
|
Генератор заказов - устранение ошибок.
|
|||
|---|---|---|---|
|
#18+
vkodorAlex37 Попробуй Спасибо за файл. Обнаружил там кое-какие изменения. В том числе и новый для меня оператор Is Код: plaintext Код: plaintext 1. А вот эта "очистка" обязательна? Ведь пользователь документ, после выполнения кода, всё равно закрывать будет!? Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2007, 20:00:32 |
|
||
|
Генератор заказов - устранение ошибок.
|
|||
|---|---|---|---|
|
#18+
Alex37 vkodorAlex37 Попробуй Спасибо за файл. У меня нет 97- го поэтому итересно: Kорректно ли отработал? Alex37Обнаружил там кое-какие изменения. В том числе и новый для меня оператор Is Он для тебя не новый Код: plaintext Код: plaintext соответственно Код: plaintext 1. 2. 3. 4. 5. Alex37 и запись файла в новом формате Код: plaintext этот формат предложил KL (XL) и я с ним полностью согласен Alex37 Неожиданное решение по выделению области перед сортировкой... Такого я не ожидал! :) никакого выделения нет, сразу сортировка давно заметил что в аргументах лучше указывать имя листа (ну чтоб можно было сортировать при не активном листе) я бы предложил еще использовать конструкцию With - End With Код: plaintext 1. 2. 3. 4. А вот эта "очистка" обязательна? У меня были проблемы, если я не обнулял обьектные переменные. Правда в других ситуациях. Вообщем мной этот вопрос доконца не изучен. Лучше если ответит на этот вопрос более знающий человек. А я стараюсь всегда закрывать и обнулять ссылки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2007, 12:29:08 |
|
||
|
Генератор заказов - устранение ошибок.
|
|||
|---|---|---|---|
|
#18+
Отвечаю на последнее сообщение vkodor. Чесно говоря, запутался в этих quot - не смог победить! Пишу так. Файлик, Что я скачал сработал некоректно (под 97-м Экселем). Снес я 97-й Офис и выставил 2003. Там все ОК! И кнопка на первом листе документа отлично работает. Заодно сегодня и на работе в офисе выставил на всех компьютерах Офис 2003. Для полной совместимости, так сказать. Про оператор IS я писал вообще. Что он для меня новый. Ранее, в других проектах, никогда не использовал... vkodorникакого выделения нет, сразу сортировка давно заметил что в аргументах лучше указывать имя листа (ну чтоб можно было сортировать при не активном листе) я бы предложил еще использовать конструкцию With - End With Под 97-м этот способ не сработал. Да и не очень он мне подошел, т.к. попросили добавить ещё один столбец в создаваемые документы, "№ п.п". Там нумерация строк идет последовательно с заполнением ячеек в строке. Если потом сортировать без выделения, то нумерация пострадает. Или пришлось бы нумеровать отдельным циклом после сортировки... Конструкцию With - End With обещаю освоить и применять. :) vkodorУ меня были проблемы, если я не обнулял обьектные переменные. Правда в других ситуациях. Вообщем мной этот вопрос доконца не изучен. Лучше если ответит на этот вопрос более знающий человек. А я стараюсь всегда закрывать и обнулять Вы правы. Спасибо всем принявшим участие в обсуждении за реальную помощь в создании программы. Она работает, взята на вооружение. Сегодня целый день проводили её испытания, мелкие ошибки устранил. Хотя и говорят - "Работает, не трогай!" Но хочу довести её до ума. Так что вопросы у меня ещё будут. Ещё раз огромное спасибо всем!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2007, 19:13:39 |
|
||
|
Генератор заказов - устранение ошибок.
|
|||
|---|---|---|---|
|
#18+
Alex37...Хотя и говорят - "Работает, не трогай!" Но хочу довести её до ума....правильно :-), трогай, трогай! чтоб программа работала не потому, что её не трогают, а вопреки тому, что её трогают. И правильно, что вопросы задаешь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2007, 19:22:23 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=34339371&tid=2183408]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 337ms |

| 0 / 0 |
