Страницы: 1
RSS
Сохранить и закрыть документ макросом
 
Добрый день, уважаемые форумчане! Подскажите макрос, при срабатывании которого документ будет сохранен и закрыт. Хочу сделать кнопку сохранить и выйти...  
 
Цитата
BRP написал: Подскажите макрос
У макрорекордера спрашивали?
Согласие есть продукт при полном непротивлении сторон
 
Нет, никогда не пользовался им)
 
Самое время начать. Много вопросов отпадёт
Хотя, еще больше добавиться, но уже более КОНКРЕТНЫХ  :)
Изменено: Sanja - 29.12.2016 13:50:27
Согласие есть продукт при полном непротивлении сторон
 
Код
Sub Выход()
  Dim Push As Integer
  Push = MsgBox("Да - схранить-закрыть. Рекомендуется." & Chr(10) & _
  "Нет - не сохранять-закрыть." & Chr(10) & _
  "Отмена - просто закрыть ЭТО ОКНО.", vbQuestion + vbYesNoCancel, "Укажите что делать?")  
  If Push = vbYes Then
    ActiveWorkbook.Save
    Application.DisplayFullScreen = False
    ActiveWorkbook.Close False  
    
  ElseIf Push = vbNo Then  
    Application.DisplayFullScreen = False
    ActiveWorkbook.Close savechanges:=False   
    
  Else
    Exit Sub
  End If
End Sub
Изменено: Владимир S - 29.12.2016 16:03:52
 
После закрытия остается пустое окно Excel, которое приходится закрывать вручную. Как этого избежать?

Также конфликтует с другим макросом, практически блокирует его действия.
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.ScreenUpdating = False
    Dim wsSh As Worksheet
    Sheets(sWarning).Visible = -1
    For Each wsSh In ThisWorkbook.Sheets
        If wsSh.Name <> sWarning Then wsSh.Visible = 2
    Next wsSh
    Application.ScreenUpdating = 1
    ThisWorkbook.Save
End Sub
Private Sub Workbook_Open()
    Application.ScreenUpdating = False
    ThisWorkbook.Sheets(sMainSheet).Visible = -1
    ThisWorkbook.Sheets(sWarning).Visible = 2
    Application.ScreenUpdating = 1
    frmIndicateUser.Show
End Sub
Изменено: BRP - 29.12.2016 17:36:55
 
А вот так попробуйте.
Код
Sub Выход()
'
  Dim Push As Integer
  Push = MsgBox("Да - схранить-закрыть. Рекомендуется." & Chr(10) & _
  "Нет - не сохранять-закрыть." & Chr(10) & _
  "Отмена - просто закрыть ЭТО ОКНО.", vbQuestion + vbYesNoCancel, "Укажите что делать?")
  If Push = vbYes Then
  Application.Quit
    ActiveWorkbook.Save
    Application.DisplayFullScreen = False
    ActiveWorkbook.Close False
    ActiveWorkbook.Close True     
  ElseIf Push = vbNo Then
  Application.Quit
    Application.DisplayFullScreen = False
    ActiveWorkbook.Close savechanges:=False
   ActiveWorkbook.Close True
  Else  
    Exit Sub    
  End If  
End Sub
 
Владимир S, а теперь закрываются все открытые книги Excel ;)
 
Владимир S/Михаил С. Действительно закрывает все книги Excel, конфликт с вышеуказанным макросом остался. Еще варианты есть?
 
Код
Sub Выход()
    Dim Push As Integer
    Push = MsgBox("Да - схранить-закрыть. Рекомендуется." & Chr(10) & _
    "Нет - не сохранять-закрыть." & Chr(10) & _
    "Отмена - просто закрыть ЭТО ОКНО.", vbQuestion + vbYesNoCancel, "Укажите что делать?")
    If Push = 2 Then Exit Sub
    If Push = 6 Then ThisWorkbook.Save
    If Workbooks.Count = 1 Then
        Application.Quit
    Else
        ThisWorkbook.Close False
    End If
End Sub
Изменено: Михаил С. - 30.12.2016 11:49:24
 
Михаил С. Огромное СПАСИБО! Все работает идеально!!
Страницы: 1
Читают тему
Наверх