Новости:

К первому сообщению темы должен быть прикреплен файл примера в формате xls*.
Приложив пример, Вы избавите себя и других от вопросов типа "А какой критерий?", "А куда выводить результат?", "А сколько строк?" и все тех же просьб выложить файл. Рисовать за Вас Ваши же таблички с заданиями, а затем и решение к ним, никто желанием не горит. Да и, как показывает практика, в большинстве случаев без файла решения не найти.

Главное меню

Макрос вывода на печать с условием

Автор 7thButterfly, 25.09.2011, 20:35

« назад - далее »

7thButterfly

Доброго вечера всем!
Подскажите, пожалуйста, как в макросе вывода на печать прописать условие, чтобы в зависимости от значания в ячейке одного листа 1 данной книги, выводился на печать Лист 2 или Лист 3 этой же книги?
Т.е., например, если в ячейке А1 Листа1 указано "1" - на печать выводится Лист2, а если значение "2", то на печать выводится Лист3.
Очень нужно, но как сделать нигде не могу найти... :'(
Спасибо!

exceleved

Если в А1 строго 1 или 2, и названия листов именно такие, тоsheets("Лист" & [Лист1!A1] + 1).printoutЕсли в А1 может быть что-то другое, и названия листов другие, то можно так:select case [Лист1!A1]
case 1:sheets("Лист2").printout
case 2:sheets("Лист3").printout
end select

7thButterfly

Спасибо, а как быть, если задача немного сложнее (как предложено не получается):
условие такое: Если Лист1!С2 = JX, на печать Лист2. Если любое иное значение (<>JX), на печать Лист3. Как задать это любое значение?

Получается что-то такое:
    Application.ScreenUpdating = 0
    Sheets("Лист2").Visible = xlSheetVisible
    Sheets("Лист3").Visible = xlSheetVisible
    Select Case [Исходные данные!F57]
    Case JX: Sheets("Лист2").PrintOut
    Case ??: Sheets("Лист3").PrintOut
    End Select
    Sheets("Лист2").Visible = 2
    Sheets("Лист3").Visible = 2
    Application.ScreenUpdating = 1

kuklp

#3
   Application.ScreenUpdating = 0
   Sheets("Лист2").Visible = xlSheetVisible
   Sheets("Лист3").Visible = xlSheetVisible
   If [Исходные данные!F57] = "JX" Then
       Sheets("Лист2").PrintOut
   Else
       Sheets("Лист3").PrintOut
   End If
   Sheets("Лист2").Visible = 2
   Sheets("Лист3").Visible = 2
   Application.ScreenUpdating = -1

или:
  Application.ScreenUpdating = 0
   Sheets("Лист2").Visible = xlSheetVisible
   Sheets("Лист3").Visible = xlSheetVisible
   Select Case [Исходные данные!F57].value
   Case "JX": Sheets("Лист2").PrintOut
   Case Else: Sheets("Лист3").PrintOut
   End Select
   Sheets("Лист2").Visible = 2
   Sheets("Лист3").Visible = 2
   Application.ScreenUpdating = -1
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

7thButterfly

Получилось по второму варианту.
Спасибо большое, Вы мне очень помогли  :)