Я тоже так предположил, Но на деле оказалось, что галочка
"Защищаемая ячейка" стоит в свойствах ВСЕХ ячеек. То-есть если включить
защиту листа, то не защищенных ячеек не останется. Цитата, Saandr писал(а): (разрешенные диапазоны уже были в файле)
Я их не нашел. Возможно причина в разности версий. У меня 2010.
Неужели версии настолько отличаются, что у вас нет разрешенных
диапазонов (сервис=>защита=>разрешить изменение диапазонов=>там 6
диапазонов, которые доступны для изменения при защите листа) ? (конечно
это я виноват, что снял защиту листа - думал она будет вам мешать)
Цитата, Saandr писал(а): Кнопка печать не работает
Работает, но нужно изменить в теле кода адрес для сохранения Цитата, light26 писал(а): Да и пользователю, пожалуй, нужно предоставить право выбора куда
сохранить файл. На других машинах при сохранении макрос, наверняка, ругаться начнет.
менять обе строки или только нижнюю?: ChDir "C:\Users\Вадим\Desktop" ActiveWorkbook.SaveAs Filename:="C:\Users\Вадим\Desktop\Заказы на
день.xls", _ И потом Вы сами написали, что будет просто сохраняться этот файл. Но это не то что нужно... ---- Попробую объяснить подробнее, что в итоге надо получить: 1)- есть калькулятор, который считает параметры изделия (это Лист
"расчет-магазин") 2)-данные с калькулятора автоматически вставляются в Лист "печать" и
Лист "заказ". Лист "печать" нужен для клиента (печатается бланк-заказа),
а Лист "заказ" нужен для изготовителя заказа и для определения
себестоимости изделия. 3)-так как за день набегает несколько заказов, то нужно, чтобы все
заказы (за день) попадали на один Лист "ДРУГОЙ" Книги (так как "ЭТА" (НЕ
"ДРУГАЯ") Книга будет доступна только для чтения, чтобы ее не испортили
и она не разбухала от пересохранений). "ДРУГАЯ" Книга должна выглядеть
как Лист "заказы за день" (этот Лист "заказы за день" в "ЭТОЙ" книге
только для примера, а в натуре его там не будет. Я хотел это реализовать
с помощью кнопки "сохранить", при нажатии которой в "ДРУГУЮ" Книгу
дозаписывался бы очередной заказ. Но нужно, чтобы либо очередной заказ
записывался вместе с куском таблицы (тогда мешают связи Листа), либо в
Листе "ДРУГОЙ" Книги сразу сделать таблицу на кучу заказов и вставлять
туда только значения. Ни тот ни другой вариант с помощью макрорекодера у
меня не получился. ПОМОГИТЕ ПОЖАЛУЙСТА!!!!! Я сделал всю эту "хрень" сам - ни у кого не просил помощи! Криво, косо, но она работает! А вот макрос для меня слишком сложно. Я неделю ошиваюсь по разным
форумам, узнал кучу нового (буду реализовывать потом), но макросы не
лезут никак! Кто-то красиво пишет, кто-то красиво читает, кто-то красиво поет - все
это связано с буквами, словами и предложениями ( у вас с цифрами,
формулами и макросами), но чтобы все это был один человек - это
редкость...
Quote (light26)
Я тоже так предположил, Но на деле оказалось, что галочка
"Защищаемая ячейка" стоит в свойствах ВСЕХ ячеек. То-есть если включить
защиту листа, то не защищенных ячеек не останется. Цитата, Saandr писал(а): (разрешенные диапазоны уже были в файле)
Я их не нашел. Возможно причина в разности версий. У меня 2010.
Неужели версии настолько отличаются, что у вас нет разрешенных
диапазонов (сервис=>защита=>разрешить изменение диапазонов=>там 6
диапазонов, которые доступны для изменения при защите листа) ? (конечно
это я виноват, что снял защиту листа - думал она будет вам мешать)
Цитата, Saandr писал(а): Кнопка печать не работает
Работает, но нужно изменить в теле кода адрес для сохранения Цитата, light26 писал(а): Да и пользователю, пожалуй, нужно предоставить право выбора куда
сохранить файл. На других машинах при сохранении макрос, наверняка, ругаться начнет.
менять обе строки или только нижнюю?: ChDir "C:\Users\Вадим\Desktop" ActiveWorkbook.SaveAs Filename:="C:\Users\Вадим\Desktop\Заказы на
день.xls", _ И потом Вы сами написали, что будет просто сохраняться этот файл. Но это не то что нужно... ---- Попробую объяснить подробнее, что в итоге надо получить: 1)- есть калькулятор, который считает параметры изделия (это Лист
"расчет-магазин") 2)-данные с калькулятора автоматически вставляются в Лист "печать" и
Лист "заказ". Лист "печать" нужен для клиента (печатается бланк-заказа),
а Лист "заказ" нужен для изготовителя заказа и для определения
себестоимости изделия. 3)-так как за день набегает несколько заказов, то нужно, чтобы все
заказы (за день) попадали на один Лист "ДРУГОЙ" Книги (так как "ЭТА" (НЕ
"ДРУГАЯ") Книга будет доступна только для чтения, чтобы ее не испортили
и она не разбухала от пересохранений). "ДРУГАЯ" Книга должна выглядеть
как Лист "заказы за день" (этот Лист "заказы за день" в "ЭТОЙ" книге
только для примера, а в натуре его там не будет. Я хотел это реализовать
с помощью кнопки "сохранить", при нажатии которой в "ДРУГУЮ" Книгу
дозаписывался бы очередной заказ. Но нужно, чтобы либо очередной заказ
записывался вместе с куском таблицы (тогда мешают связи Листа), либо в
Листе "ДРУГОЙ" Книги сразу сделать таблицу на кучу заказов и вставлять
туда только значения. Ни тот ни другой вариант с помощью макрорекодера у
меня не получился. ПОМОГИТЕ ПОЖАЛУЙСТА!!!!! Я сделал всю эту "хрень" сам - ни у кого не просил помощи! Криво, косо, но она работает! А вот макрос для меня слишком сложно. Я неделю ошиваюсь по разным
форумам, узнал кучу нового (буду реализовывать потом), но макросы не
лезут никак! Кто-то красиво пишет, кто-то красиво читает, кто-то красиво поет - все
это связано с буквами, словами и предложениями ( у вас с цифрами,
формулами и макросами), но чтобы все это был один человек - это
О, СПАСИБО, ФОРМУЛЯР! Это почти, то... но не совсем то... В глобальном смысле - это было для меня самое сложное - перенос данных в другой файл. Но: когда заказов за день более 30 - соответственно столько будет и листов, поэтому я просил, чтобы данные листа "заказ" не просто копировались в такой же лист в другой книге, а копировались бы в один лист добавляясь сверху вниз (см. высланный файл лист "НАДО"), то есть не 30 листов в одной книге, а 30 таблиц на одном листе. К тому же, хоть в макросе и есть фраза <'dataRng.Worksheet.Unprotect>, если ставить защиту листа "заказ", то макрос зависает при попытке трансформировать ссылки на значения <dataRng.PasteSpecial xlPasteValues>. ----- P.S. Кнопки сброс и печать сделал - работают. СПАСИБО ВСЕМ ЗА ПОМОЩЬ
О, СПАСИБО, ФОРМУЛЯР! Это почти, то... но не совсем то... В глобальном смысле - это было для меня самое сложное - перенос данных в другой файл. Но: когда заказов за день более 30 - соответственно столько будет и листов, поэтому я просил, чтобы данные листа "заказ" не просто копировались в такой же лист в другой книге, а копировались бы в один лист добавляясь сверху вниз (см. высланный файл лист "НАДО"), то есть не 30 листов в одной книге, а 30 таблиц на одном листе. К тому же, хоть в макросе и есть фраза <'dataRng.Worksheet.Unprotect>, если ставить защиту листа "заказ", то макрос зависает при попытке трансформировать ссылки на значения <dataRng.PasteSpecial xlPasteValues>. ----- P.S. Кнопки сброс и печать сделал - работают. СПАСИБО ВСЕМ ЗА ПОМОЩЬSaandr
К тому же, хоть в макросе и есть фраза <'dataRng.Worksheet.Unprotect>, если ставить защиту листа "заказ", то макрос зависает при попытке трансформировать ссылки на значения .
Апостроф в начале строки означает, что строка не выполняется, а служит комментарием для понимания смысла. В данном случае, предполагал, что команда может понадобиться, поэтому оставил в "закомментированном" виде. Удалите апостроф - всё заработает.
Quote (Saandr)
не 30 листов в одной книге, а 30 таблиц на одном листе
ОК. Посмотрю,что можно предложить.
Quote (Saandr)
К тому же, хоть в макросе и есть фраза <'dataRng.Worksheet.Unprotect>, если ставить защиту листа "заказ", то макрос зависает при попытке трансформировать ссылки на значения .
Апостроф в начале строки означает, что строка не выполняется, а служит комментарием для понимания смысла. В данном случае, предполагал, что команда может понадобиться, поэтому оставил в "закомментированном" виде. Удалите апостроф - всё заработает.
Quote (Saandr)
не 30 листов в одной книге, а 30 таблиц на одном листе
Трудно быть... Убрал апостроф - все заработало и с защитой листа.
А что "закомментировано" перед закрытием макроса <'sht.Activate> ? (если убрать апостроф - макрос виснет и выделяет эту строку) хотел попробовать узнать -не получилось :)))
Quote (Формуляр)
Удалите апостроф - всё заработает.
Трудно быть... Убрал апостроф - все заработало и с защитой листа.
А что "закомментировано" перед закрытием макроса <'sht.Activate> ? (если убрать апостроф - макрос виснет и выделяет эту строку) хотел попробовать узнать -не получилось :)))Saandr
СПАСИБО ОГРОМНОЕ!!!!!!! Сначала макрос выругался на Set dstSht = ActiveWorkbook.Sheets("НАДО"), я изменил на Set dstSht = ActiveWorkbook.Sheets("заказ") и все заработало. Буду думать, что делать с объединенными ячейками... Щас глова не варит - спать хочу. ЕЩЕ РАЗ БЛАГОДАРЮ!!! Поэкспериментирую, думаю ВСЕ БУДЕТ ХОРОШО!!!!!!!!!
СПАСИБО ОГРОМНОЕ!!!!!!! Сначала макрос выругался на Set dstSht = ActiveWorkbook.Sheets("НАДО"), я изменил на Set dstSht = ActiveWorkbook.Sheets("заказ") и все заработало. Буду думать, что делать с объединенными ячейками... Щас глова не варит - спать хочу. ЕЩЕ РАЗ БЛАГОДАРЮ!!! Поэкспериментирую, думаю ВСЕ БУДЕТ ХОРОШО!!!!!!!!!Saandr
Вчера проверил этот макрос 1 раз. Он действительно скопировал таблицу из Листа "заказ" в новую книгу. При условии отсутствия объединенных ячеек. Сегодня склепал несколько заказов и увидел, что последний заказ переписывается на предыдущий. То есть они не складываются, а замещаются. В результате в новой книге всегда только один заказ - последний!!! Также не понятно, почему строка 4 остается пустой. Увидел в макросе, что ячейка D4 (чего-то там...) просто ввел в эту ячейку D4 цифру 1 - и макрос перестал работать... Вобщем ничего не понимаю...
Вчера проверил этот макрос 1 раз. Он действительно скопировал таблицу из Листа "заказ" в новую книгу. При условии отсутствия объединенных ячеек. Сегодня склепал несколько заказов и увидел, что последний заказ переписывается на предыдущий. То есть они не складываются, а замещаются. В результате в новой книге всегда только один заказ - последний!!! Также не понятно, почему строка 4 остается пустой. Увидел в макросе, что ячейка D4 (чего-то там...) просто ввел в эту ячейку D4 цифру 1 - и макрос перестал работать... Вобщем ничего не понимаю...Saandr
Также не понятно, почему строка 4 остается пустой.
Ошибочка была - поправил.
Quote (Saandr)
Сегодня склепал несколько заказов и увидел, что последний заказ переписывается на предыдущий. То есть они не складываются, а замещаются.
Проверил на примере листа заказы за день - дописывает в конец, ничего не затирает. Значит, у вас что-то поменялось в структуре. Без примера ничего не выяснить.
Quote (Saandr)
Также не понятно, почему строка 4 остается пустой.
Ошибочка была - поправил.
Quote (Saandr)
Сегодня склепал несколько заказов и увидел, что последний заказ переписывается на предыдущий. То есть они не складываются, а замещаются.
Проверил на примере листа заказы за день - дописывает в конец, ничего не затирает. Значит, у вас что-то поменялось в структуре. Без примера ничего не выяснить.Формуляр
СПАСИБО ОГРОМНОЕ!!! Вроде бы работает. Гонял и так и эдак. Пробовал стирать (не удалять) 3 нижних строки, тогда (не с первого раза, а после сохранения и открытия) нижние таблицы налезали на предыдущие... А вообще если не трудно нельзя расшифровать все записи этого макроса, а то я так понимаю, что шаг влево или вправо и он уже не будет работать корректно...
СПАСИБО ОГРОМНОЕ!!! Вроде бы работает. Гонял и так и эдак. Пробовал стирать (не удалять) 3 нижних строки, тогда (не с первого раза, а после сохранения и открытия) нижние таблицы налезали на предыдущие... А вообще если не трудно нельзя расшифровать все записи этого макроса, а то я так понимаю, что шаг влево или вправо и он уже не будет работать корректно...Saandr
Saandr, описывать каждую команду не вижу смысла - для этого существует хелп. А общий принцип таков: начиная от [D4], находим последнюю снизу заполненную ячейку. (налезание на записанные таблицы может быть связано с каким-то нарушением этого столбца) От неё смещаемся на 1 вниз и на 3 влево и шлёпаем туда таблицу, скопированную в буфер.
По остальным непоняткам задавайте вопросы конкретно.
Небольшой совет: при использовнии макрокодера, последовательное сочетание
Code
... .Select Selection. ...
можно всегда смело удалять, объединяя начало и конец 2х строк.
Saandr, описывать каждую команду не вижу смысла - для этого существует хелп. А общий принцип таков: начиная от [D4], находим последнюю снизу заполненную ячейку. (налезание на записанные таблицы может быть связано с каким-то нарушением этого столбца) От неё смещаемся на 1 вниз и на 3 влево и шлёпаем туда таблицу, скопированную в буфер.
По остальным непоняткам задавайте вопросы конкретно.
Небольшой совет: при использовнии макрокодера, последовательное сочетание
Code
... .Select Selection. ...
можно всегда смело удалять, объединяя начало и конец 2х строк.Формуляр
при использовнии макрокодера, последовательное сочетание Формула: ... .Select Selection. ... можно всегда смело удалять, объединяя начало и конец 2х строк.
И не только это )))
Quote (Формуляр)
при использовнии макрокодера, последовательное сочетание Формула: ... .Select Selection. ... можно всегда смело удалять, объединяя начало и конец 2х строк.