VBA - макрос excel

Аватара пользователя
Maza11

VBA - макрос excel

Сообщение Maza11 »

нужен простой макрос. в документ excel удалить два логотипа организации, уместить для печати на 1 страницу документ, сохранить и напечатать 3 копии.

Можно ли как то его применить для всех документов в конкретной папке, есть много папок по разным торг.точкам, но документ одинаковый и в каждой папке по 20-50 документов. чтобы каждый не открывать и не проделывать это все.



Пробовал записать макрос нажав на "Запись", вот такой код вышел





Код:

Код: Выделить всё

Sub лямина2()
'
' лямина2 Макрос
'
' Сочетание клавиш: Ctrl+l
'
    Range("H4:I7").Select
    Selection.ClearContents
    ActiveSheet.Shapes.Range(Array("Picture -767")).Select
    Selection.Delete
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = ""
        .RightFooter = ""
        .LeftMargin = Application.InchesToPoints(0.236220472440945)
        .RightMargin = Application.InchesToPoints(0.236220472440945)
        .TopMargin = Application.InchesToPoints(0.393700787401575)
        .BottomMargin = Application.InchesToPoints(0.393700787401575)
        .HeaderMargin = Application.InchesToPoints(0)
        .FooterMargin = Application.InchesToPoints(0)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .PrintQuality = 600
        .CenterHorizontally = False
        .CenterVertically = False
        .Orientation = xlPortrait
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 1
        .PrintErrors = xlPrintErrorsDisplayed
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = False
        .ScaleWithDocHeaderFooter = True
        .AlignMarginsHeaderFooter = False
        .EvenPage.LeftHeader.Text = ""
        .EvenPage.CenterHeader.Text = ""
        .EvenPage.RightHeader.Text = ""
        .EvenPage.LeftFooter.Text = ""
        .EvenPage.CenterFooter.Text = ""
        .EvenPage.RightFooter.Text = ""
        .FirstPage.LeftHeader.Text = ""
        .FirstPage.CenterHeader.Text = ""
        .FirstPage.RightHeader.Text = ""
        .FirstPage.LeftFooter.Text = ""
        .FirstPage.CenterFooter.Text = ""
        .FirstPage.RightFooter.Text = ""
    End With
    Application.PrintCommunication = True
    ActiveWindow.SelectedSheets.PrintPreview
    ActiveWorkbook.Save
    ActiveWindow.SelectedSheets.PrintOut Copies:=3, Collate:=True, _
        IgnorePrintAreas:=False
End Sub

применять для других документов его как не открывая каждый из 492 документов ???
Аватара пользователя
Iska

Re: VBA - макрос excel

Сообщение Iska »

Maza11, упакуйте пару-тройку образцов документов в архив, прикрепите последний к сообщению или выложите на RGhost.
Аватара пользователя
Maza11

Re: VBA - макрос excel

Сообщение Maza11 »

Цитата:



Iska превысил(а) максимальный объем сохраненных персональных сообщений и не может получать новые сообщения, пока не удалит часть старых



простите за глупый вопрос, но тот макрос что вы написали его нужно в редакторе макросов Microsoft Visual Basic открыть мой макрос PERSONAL.XLSB и вставить вместо него ?



сохранил ваш код в блокноте в файл Module3.bas нажимаю запустить его, тыкаю файл в wscript.exe, ругается
Аватара пользователя
Iska

Re: VBA - макрос excel

Сообщение Iska »

Там лишнее.



Код:

Код: Выделить всё

.Replace "02.07.2015", "09.07.2015"
Аватара пользователя
Iska

Re: VBA - макрос excel

Сообщение Iska »

делал все через менюшки и выставлял уместить для печати на 1 страницу документ через предварительный просмотр - параметры страницы - разместить на 1 странице,

и при срабатывании макроса. он останавливается на окне предварительного просмотра
Аватара пользователя
Maza11

Re: VBA - макрос excel

Сообщение Maza11 »

Цитата Maza11:



удалить два логотипа организации,
VBA - макрос excel




Maza11, я вижу в выложенных документах только один рисунок на документ:



Скрытый текст

[spoiler][/spoiler]




Поясните.



Далее:


Цитата Maza11:



уместить для печати на 1 страницу
VBA - макрос excel




Надо полагать, Вы хотели сказать — по ширине
на одну страницу?
Вложения
затяжка.rar
(30.88 КБ) 0 скачиваний
затяжка.rar
(30.88 КБ) 0 скачиваний
Аватара пользователя
Maza11

Re: VBA - макрос excel

Сообщение Maza11 »

Цитата Iska:

, я вижу в выложенных документах только один рисунок на документ:
VBA - макрос excel


под ним строка %!25 это тоже удалить



Цитата Iska:

Надо полагать, Вы хотели сказать — по ширине на одну страницу?
VBA - макрос excel


да.



Просто внезапно озадачили. в спешке писал



делаю сейчас так



печатает, без лишних окон, но приходится открывать каждый документ, нажимать "Ctrl + L", закрывать и так далее

вот этот момент можно оптимизировать ?





Код:

Код: Выделить всё

Sub лямина2()
'
' лямина2 Макрос
'
' Сочетание клавиш: Ctrl+l
'
    Range("H4:I7").Select
    Selection.ClearContents
    ActiveSheet.Shapes.Range(Array("Picture -767")).Select
    Selection.Delete
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = ""
        .RightFooter = ""
        .LeftMargin = Application.InchesToPoints(0.236220472440945)
        .RightMargin = Application.InchesToPoints(0.236220472440945)
        .TopMargin = Application.InchesToPoints(0.393700787401575)
        .BottomMargin = Application.InchesToPoints(0.393700787401575)
        .HeaderMargin = Application.InchesToPoints(0)
        .FooterMargin = Application.InchesToPoints(0)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .PrintQuality = 600
        .CenterHorizontally = False
        .CenterVertically = False
        .Orientation = xlPortrait
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 1
        .PrintErrors = xlPrintErrorsDisplayed
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = False
        .ScaleWithDocHeaderFooter = True
        .AlignMarginsHeaderFooter = False
        .EvenPage.LeftHeader.Text = ""
        .EvenPage.CenterHeader.Text = ""
        .EvenPage.RightHeader.Text = ""
        .EvenPage.LeftFooter.Text = ""
        .EvenPage.CenterFooter.Text = ""
        .EvenPage.RightFooter.Text = ""
        .FirstPage.LeftHeader.Text = ""
        .FirstPage.CenterHeader.Text = ""
        .FirstPage.RightHeader.Text = ""
        .FirstPage.LeftFooter.Text = ""
        .FirstPage.CenterFooter.Text = ""
        .FirstPage.RightFooter.Text = ""
    End With
    Application.PrintCommunication = True
    ActiveWorkbook.Save
    ActiveWindow.SelectedSheets.PrintOut Copies:=3, Collate:=True, _
        IgnorePrintAreas:=False
End Sub
Аватара пользователя
Iska

Re: VBA - макрос excel

Сообщение Iska »

это еще не все оказалось, внизу строка есть




Цитата:



Автор друку: Хал....



но у нее разный адрес получается на каждом документе, поэтому удалять ее автоматически уже не знаю как
Аватара пользователя
Maza11

Re: VBA - макрос excel

Сообщение Maza11 »

думаю надо макросом удалять строку содержащую "Автор друку: ..." и строку перед ней, т.к. там какая то дурацкая строка идет высотой 300-400.

Это возможно ???
Аватара пользователя
Maza11

Re: VBA - макрос excel

Сообщение Maza11 »

это еще не все оказалось, внизу строка есть

Цитата:

Автор друку: Хал....

но у нее разный адрес получается на каждом документе, поэтому удалять ее автоматически уже не знаю как
Ответить

Вернуться в «Программирование и базы данных»