Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Дополнить макрос - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Дополнить макрос
SvetlanaSK Дата: Понедельник, 04.03.2013, 03:07 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Вопрос, наверное, простой, но решение никак не дается, не смогла найти ответ! Очень прошу помочь!

Имеется файл, состоящий из 2 видов документов, перелинкованных между собой: инвойс и к нему 5 спецификаций.
И инвойс и каждая из 5 спецификаций состоят из двух листов, неразрывно связанных между собой, они идут как один документ.

Макрос, написанный для спецификации номер 1, делает копию двух листов, успешно сохраняет в той же папке, где расположена книга и замещает в определенной зоне формулы значениями. Но, увы мне, этого недостаточно, к моему огромному сожалению! Вопрос крайне важный, обвал работы и очень нужно ускориться! А я не знаю, как сделать так, чтобы после выполнения этого успешного шага макрос обращался к тому же инвойсу, ячейка D14 и, если значение ячейки не равно 0, делал те же действия уже со спецификацией номер 2(!). И так до ячейки D17 инвойса (то есть спецификации номер 5).

Когда я говорю о номере спецификации, я имею в виду порядковый номер страницы в книге. Первые две страницы отданы инвойсу, вторые две первой спецификации, следующие две второй и так далее до пятой.

В случае, если D14 равна нулю никакие действия больше не нужны, достаточно того, что уже есть. Но если не равна нулю, то макрос должен проверить значение D15 и выполнить то же, что делает для спецификации номер 1, но уже для спецификации номер 2, потом обратиться к D16 и D17 и тогда только остановиться.

Проблема для меня в том, что макрос должен обращаться после каждой проверки с результатом не равно нулю к следующим спецификациям и сохранять их. А у них разные имена вида текст+номер, текст один и тот же, а номера разные, то есть различающиеся только порядковым номером! Как описать макросу как перейти к спецификации номер 2 и так далее до 5 понятия не имею. Сделать вариабельным номер в имени страницы не удалось((( Решение искала, но не нашла. На краткосрочных курсах VBA тоже не помогли.

Сейчас код выглядит так:

[vba]
Код
Sub CleanerSpec()

Dim c As Variant
Dim p As Variant
Dim SpecNum As String

c = Range("K27")
p = Range("G20")
SpecNum = Range("E23")

Sheets(Array("Specification_1", "Specification_1_avg")).Select
Sheets(Array("Specification_1", "Specification_1_avg")).Copy
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\Specification_" & SpecNum &

".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

Application.ScreenUpdating = False

Sheets("Specification_1").Select
Sheets("Specification_1").Activate
Range("A1:J26").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("K29").Select

End Sub
[/vba]

Заранее огромная и искренняя благодарность за помощь!!!
 
Ответить
СообщениеВопрос, наверное, простой, но решение никак не дается, не смогла найти ответ! Очень прошу помочь!

Имеется файл, состоящий из 2 видов документов, перелинкованных между собой: инвойс и к нему 5 спецификаций.
И инвойс и каждая из 5 спецификаций состоят из двух листов, неразрывно связанных между собой, они идут как один документ.

Макрос, написанный для спецификации номер 1, делает копию двух листов, успешно сохраняет в той же папке, где расположена книга и замещает в определенной зоне формулы значениями. Но, увы мне, этого недостаточно, к моему огромному сожалению! Вопрос крайне важный, обвал работы и очень нужно ускориться! А я не знаю, как сделать так, чтобы после выполнения этого успешного шага макрос обращался к тому же инвойсу, ячейка D14 и, если значение ячейки не равно 0, делал те же действия уже со спецификацией номер 2(!). И так до ячейки D17 инвойса (то есть спецификации номер 5).

Когда я говорю о номере спецификации, я имею в виду порядковый номер страницы в книге. Первые две страницы отданы инвойсу, вторые две первой спецификации, следующие две второй и так далее до пятой.

В случае, если D14 равна нулю никакие действия больше не нужны, достаточно того, что уже есть. Но если не равна нулю, то макрос должен проверить значение D15 и выполнить то же, что делает для спецификации номер 1, но уже для спецификации номер 2, потом обратиться к D16 и D17 и тогда только остановиться.

Проблема для меня в том, что макрос должен обращаться после каждой проверки с результатом не равно нулю к следующим спецификациям и сохранять их. А у них разные имена вида текст+номер, текст один и тот же, а номера разные, то есть различающиеся только порядковым номером! Как описать макросу как перейти к спецификации номер 2 и так далее до 5 понятия не имею. Сделать вариабельным номер в имени страницы не удалось((( Решение искала, но не нашла. На краткосрочных курсах VBA тоже не помогли.

Сейчас код выглядит так:

[vba]
Код
Sub CleanerSpec()

Dim c As Variant
Dim p As Variant
Dim SpecNum As String

c = Range("K27")
p = Range("G20")
SpecNum = Range("E23")

Sheets(Array("Specification_1", "Specification_1_avg")).Select
Sheets(Array("Specification_1", "Specification_1_avg")).Copy
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\Specification_" & SpecNum &

".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

Application.ScreenUpdating = False

Sheets("Specification_1").Select
Sheets("Specification_1").Activate
Range("A1:J26").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("K29").Select

End Sub
[/vba]

Заранее огромная и искренняя благодарность за помощь!!!

Автор - SvetlanaSK
Дата добавления - 04.03.2013 в 03:07
KuklP Дата: Понедельник, 04.03.2013, 05:12 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Цитата (SvetlanaSK)
...успешно сохраняет в той же папке, где расположена книга и замещает в определенной зоне формулы значениями. Но, увы мне, этого недостаточно, к моему огромному сожалению! Вопрос крайне важный, обвал работы и очень нужно ускориться! А я не знаю, как сделать так, чтобы после выполнения этого успешного шага...

Офф
Смеркалось... wacko biggrin biggrin biggrin
По теме - SvetlanaSK, загляните в правила, п.3


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
Сообщение
Цитата (SvetlanaSK)
...успешно сохраняет в той же папке, где расположена книга и замещает в определенной зоне формулы значениями. Но, увы мне, этого недостаточно, к моему огромному сожалению! Вопрос крайне важный, обвал работы и очень нужно ускориться! А я не знаю, как сделать так, чтобы после выполнения этого успешного шага...

Офф
Смеркалось... wacko biggrin biggrin biggrin
По теме - SvetlanaSK, загляните в правила, п.3

Автор - KuklP
Дата добавления - 04.03.2013 в 05:12
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!