Excel кнопка сохранить макрос

Microsoft Excel offers Visual Basic for Application (VBA) as a scripting tool to let you add additional functionality to your Excel spreadsheets. You can use VBA to prompt the user to enter a filename for an Excel spreadsheet and then save the file where the user has indicated.

In newer versions of Excel, you can use JavaScript scripting to achieve similar functionality.

Understanding VBA for Excel 

VBA is a scripting language that’s supported by the Microsoft Office suite of productivity software, including the word processing program Microsoft Word and Microsoft Excel, the suite’s spreadsheet program. Microsoft provides extensive documentation for the functionality that is accessible through VBA.

It’s related to other versions of the Basic and Visual Basic programming language, although it has its own distinct syntax and set of features you can access, particularly as it relates to scripting the Microsoft Office programs. You can embed macros, or short programs, into Microsoft Office files for yourself and your colleagues to work with. They can be used to tweak the user interface in Excel and Word and to automate features, such as copying and pasting text.

These macros are separate from Excel formulas, which are used to automatically compute results in a spreadsheet cell based on values in other cells.

VBA and Security Concerns

Keep in mind that if you write code in VBA and embed it in an Excel or Word file, the file will get a distinct extension indicating that it contains macro code. For security reasons, other users and users on other computers may have to approve the code to run before it will function.

In some cases, depending on settings, you may not be able to run the code at all or the file may be flagged by antivirus software and you won’t be able to install it.

If someone sends you a file that you don’t expect to have macro code or you receive a file with macro code from an unexpected source, do not allow the macro code to run until you verify it was written and sent to you by someone you trust, since it could damage files on your computer.

Setting Up the Developer Toolbar

Before you can access the scripting interface in Microsoft Excel, you must enable it. To do so, click the «File» tab on the ribbon menu, then click «Options» to enable the «Options» dialog box. Click «Customize Ribbon» in the left portion of the box, and then select «Popular Commands» under the «Choose commands from» label.

Then, on the right side of the dialog box, select «Main Tabs» in the «Customize the Ribbon» dropdown list and check the box next to the word «Developer.» Click the «OK» button.

The «Developer» tab will now appear on your ribbon menu. From there, you can click the «Visual Basic» button to see the embedded macro code in your spreadsheet.

Adding «Save» Button in Excel  

If you want to add a VBA save as button in Excel, you can do so using the «Developer» tab in the ribbon menu. Make sure you have enabled it by customizing the ribbon, and then click the «Insert» button; under «ActiveX Controls,» click the word «Button.»

Then, click in your spreadsheet where you want the button to appear. Next, in the «Controls» group of the ribbon menu’s «Developer» tab, click «View code.» Select the button’s name in the left dropdown menu and the word «Click» in the right dropdown menu to edit the code that will be executed when you click on the button.

Here, you can add code for your «Save As» button to show the familiar prompt that will enable users to choose a location to store the spreadsheet.

Excel VBA and «Save As»

To give an Excel macro «Save As» functionality, you can use the Excel VBA GetSaveAsFilename function. This is part of the «Application» group of functions, since it is part of Excel’s core functionality.

Assign the result of the operation to a variable with a line like «filename = Application.GetSaveAsFileName()». When the code is run, a «Save As» dialog box will pop up, defaulting to the name of the current file.

You can specify an argument to the function called InitialFileName to indicate another default filename, use an argument called Title to customize the title on the dialog box, and use the FileFilter and FilterIndex options to specify a list of file types, such as Excel spreadsheets or text files, and the index within the list of the one you wish to use as a default.

When you select a folder and enter a file name to save the file with, the function will return the file path. If you close or cancel out of the dialog box, it will return «False.»

Accessing an Excel Workbook

Logically, you’ll likely want your Excel VBA SaveAs button to actually save the file using the file path that the user provided rather than just discarding that name. You can use the SaveAs method on a workbook object to do so. Remember that a workbook is just another name for a Microsoft Excel spreadsheet file.

To access the current workbook the user is working in, use the variable ActiveWorkbook. To get an already open workbook by filename, use the Workbooks method, such as by calling up Workbooks («filename.xls»).

Saving the Workbook

Once you have your workbook, you can call the SaveAs method on it using the filename that the user provided through the dialog box, such as by calling «ActiveWorkbook.SaveAs Filename:=filename». You can also pass other parameters to this function, such as the file format to use for the file, which could be a Windows or Mac text file, a Windows or Mac comma-separated value file or a traditional Excel file.

Other parameters allow you to indicate whether to add the file to the list of recently used files and whether to require a password, which you can specify with the method, to interact with the file. You may wish to prompt the user or otherwise indicate if you wish to set a password so you don’t make the file impossible to open.

Saving the File in Place

While an Excel macro for Save as can be useful if you want to prompt a user to enter a new filename, there are also times where you will simply want to save the Excel spreadsheet with its existing filename.

To do this, use the Save method on the workbook without any arguments. For example, you can call ActiveWorkbook.Save to save the active workbook. You can also iterate through the Application.Workbooks variable using a for loop to save each open workbook.

You may wish to notify users when you intend to save open workbooks, either by including a dialog box or a message within the spreadsheet, so that colleagues are not surprised that their work has been written to disk.

Styling Your Excel VBA Button

You may want to style and label buttons you create in Excel VBA to stand out. To do so, click the «Developer» tab in the ribbon menu and then click the «Design Mode» toggle button to turn design mode on.

Select the button you want to configure and design by clicking it with you mouse, and then click «Properties» within the «Controls» group of the «Developer» tab of the ribbon menu. Alternatively, right-click the button and click «Properties» with design mode enabled.

Within the properties menu, you can configure options like the «Caption» that is displayed on the button, which you may want to set to something like «Save As,» as well as the font settings used to display the text on the button. You can also configure whether the button has an image displayed on it and what type of cursor icon will appear when you move your mouse over it.

It’s also possible to configure whether it will appear when you print the spreadsheet. Configure the button so that you think it will be clear to users of the spreadsheet what it does, taking into account your organization’s usual font and styling preferences.

Using the Default Save As

While it may occasionally be useful to trigger a SaveAs dialog menu with the click of a button within your spreadsheet, it’s usually not necessary, because a SaveAs button is already built in to Microsoft Excel.

To access it, click the «File» menu in Microsoft Excel and then click «Save As.» Choose where you want to save the file on your cloud storage or on your local computer, and use the «Save as type» dropdown menu to choose which file format you want to use to store the file.

Use the «File name» box to indicate a name for the file, and click the «Save» button when you are satisfied.

Using the JavaScript API

Newer versions of Microsoft Office also enable scripting with JavaScript, a programming language commonly used for implementing interactive functionality on the web.

So far, saving functionality is only available in a public preview version of the scripting tool. You can save the file by calling the Workbook.save method, similar to the functionality in VBA. Call Workbook.save with the parameter Excel.SaveBehavior.save to indicate that you want to save the file in its existing place; use the argument Excel.SaveBehavior.prompt if you want to prompt the user on where to save the file for the first time.

Note that if the user cancels the Save menu, the method will throw an exception.

Using Google Apps Script

If you’re using Google Sheets instead of Microsoft Excel, you can still write code to script interactive elements and automated functionality in your spreadsheets. The code will be written in a version of JavaScript known as Google Apps Script that has access to Google applications like Google Docs, Google Sheets and Gmail.

If you want to create and populate a spreadsheet with a particular name in Google Sheets, you can use the «SpreadsheetApp.create» method, which takes the spreadsheet’s designed name as an argument and will return the web address of the new spreadsheet. If you pass it the name and a number of rows and a number of columns, such as SpreadsheetApp.create(«MySpreadsheet», 20, 5), it will create a new spreadsheet with those specifications.

Compatibility Between Software Tools

Note that the scripting languages included with various word processing and spreadsheet tools are largely incompatible with those from other makers. If you send someone a Microsoft Excel sheet with VBA code that they open with LibreOffice Calc, Apple Numbers or Google Sheets, it is very likely that the VBA code embedded in the sheet simply will not run on the other program.

Take this factor into consideration if you are exchanging files with people using different spreadsheet or word processing software.


УРОК 1. Знакомство с макросами / Как работать с макросами в Excel?

Видео: УРОК 1. Знакомство с макросами / Как работать с макросами в Excel?

Содержание

  • Рабочий лист Excel с кнопкой
  • Расположение вкладки разработчика
  • Вставка кнопки макроса на лист
  • Выбор кнопки управления формой
  • Создать кнопку
  • Размер и название кнопки
  • Добавление кода Visual Basic
  • Структура Visual Basic
  • Сохранение книги с помощью макроса
  • Вариант книги с поддержкой макросов
  • Тестирование кнопки макроса
  • Дизайн кнопки макроса
  • Редактирование текста
  • Дополнительный ресурс
  • Как добавить кнопку макроса, которая сохраняет и закрывает книгу Excel

Джеймс любит узнавать о технологиях и делиться тем, что он узнал из своих статей.

Рабочий лист Excel с кнопкой

Перед тем, как приступить к этому руководству, убедитесь, что вкладка разработчика отображается в Microsoft Excel. Если вы не знаете, как добавить вкладку, найдите инструкции здесь. На иллюстрации ниже показано, где находится эта вкладка. Помните, что вкладка разработчика по умолчанию не отображается в Excel. Добавление этой функции позволяет вам работать с макросами, надстройками и задачами, связанными с XML.

После создания полезной книги Excel сохранение и закрытие книги неизбежно. Если вы создаете книгу для использования в течение длительного периода времени, почему бы не иметь кнопку, которая сохранит вашу работу? Это сэкономит вам шаг и не даст появиться тому раздражающему всплывающему окну, которое спрашивает, хотите ли вы сохранить.

Расположение вкладки разработчика

Вставка кнопки макроса на лист

Шаг первый для создания кнопки сохранения и закрытия — это найти и щелкнуть вкладку разработчика. После этого вы найдете на ленте раздел, называемый разделами управления. Нажмите кнопку вставки в этом разделе управления. Для выбора станет доступно множество значков. Нас интересует кнопка управления формой, поэтому в разделе элементов управления формы я хочу ее выбрать. Он находится в первой строке первого столбца.

Выбор кнопки управления формой

Создать кнопку

Теперь, когда кнопка выбрана, с курсором перетащите прямоугольник или квадрат где-нибудь на листе Excel, удерживая левую кнопку мыши. После того, как вы остановите перетаскивание, появится назначенное окно макроса. Здесь макрос можно переименовать для удобства использования. Нажмите на новое, и появится другое окно. В этом окне вам нужно написать код, который сообщает кнопке сохранить книгу перед ее закрытием.

Размер и название кнопки

Добавление кода Visual Basic

Вот ваш шанс попрактиковаться в написании визуального базового кода. Приведенный ниже текст можно вставить в окно модуля точно так, как он отображается ниже. Перед этим обязательно удалите весь существующий код в модуле. Первая и последняя строки уже должны существовать в окне модуля.

Sub Button2_Click ()
Application.Quit
ThisWorkbook.Save
Конец подписки

После ввода кода обязательно нажмите кнопку сохранения.

Структура Visual Basic

Сохранение книги с помощью макроса

Если книга не была сохранена до предыдущего шага, вам будет предложено сохранить книгу. Имейте в виду, что для работы макросов книга должна быть сохранена как книга Excel с поддержкой макросов.

Вариант книги с поддержкой макросов

Тестирование кнопки макроса

На этом этапе кнопку можно протестировать. Можно выполнить тест сохранения, чтобы убедиться, что кнопка работает правильно. Перед тестированием кнопки убедитесь, что кнопка не выбрана. Это можно сделать, щелкнув ячейку. Теперь, чтобы протестировать кнопку, добавьте текст в любую ячейку без сохранения, затем нажмите кнопку «Сохранить и закрыть». Книга должна закрыться без каких-либо запросов. Когда книга откроется снова, убедитесь, что введенный вами текст сохранен.

Дизайн кнопки макроса

Дизайн кнопки можно изменить, щелкнув ее правой кнопкой мыши и выбрав элемент управления форматом. Вам будет предоставлена ​​возможность изменить несколько свойств кнопки, таких как стиль текста, цвет и размер. У вас также есть возможность изменить внешний вид.

Редактирование текста

Дополнительный ресурс

Если вам нужна дополнительная информация о том, как создать кнопку сохранения и закрытия в Microsoft Excel, попробуйте просмотреть видео ниже.

Как добавить кнопку макроса, которая сохраняет и закрывает книгу Excel

Эта статья точна и правдива, насколько известно автору. Контент предназначен только для информационных или развлекательных целей и не заменяет личного или профессионального совета по деловым, финансовым, юридическим или техническим вопросам.

 

BRP

Пользователь

Сообщений: 213
Регистрация: 27.12.2016

Добрый день, уважаемые форумчане! Подскажите макрос, при срабатывании которого документ будет сохранен и закрыт. Хочу сделать кнопку сохранить и выйти…  

 

Sanja

Пользователь

Сообщений: 14838
Регистрация: 10.01.2013

#2

29.12.2016 13:33:41

Цитата
BRP написал: Подскажите макрос

У макрорекордера спрашивали?

Согласие есть продукт при полном непротивлении сторон.

 

BRP

Пользователь

Сообщений: 213
Регистрация: 27.12.2016

Нет, никогда не пользовался им)

 

Sanja

Пользователь

Сообщений: 14838
Регистрация: 10.01.2013

Самое время начать. Много вопросов отпадёт
Хотя, еще больше добавиться, но уже более КОНКРЕТНЫХ  :)

Изменено: Sanja29.12.2016 13:50:27

Согласие есть продукт при полном непротивлении сторон.

 

Владимир S

Пользователь

Сообщений: 109
Регистрация: 23.04.2013

#5

29.12.2016 14:05:12

Код
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

Изменено: Владимир S29.12.2016 16:03:52

 

BRP

Пользователь

Сообщений: 213
Регистрация: 27.12.2016

#6

29.12.2016 17:32:46

После закрытия остается пустое окно 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

Изменено: BRP29.12.2016 17:36:55

 

Владимир S

Пользователь

Сообщений: 109
Регистрация: 23.04.2013

#7

29.12.2016 21:32:40

А вот так попробуйте.

Код
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 ;)

 

BRP

Пользователь

Сообщений: 213
Регистрация: 27.12.2016

Владимир S

/

Михаил С.

Действительно закрывает все книги Excel, конфликт с вышеуказанным макросом остался. Еще варианты есть?

 

Михаил С.

Пользователь

Сообщений: 10514
Регистрация: 21.12.2012

#10

30.12.2016 11:47:40

Код
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

 

BRP

Пользователь

Сообщений: 213
Регистрация: 27.12.2016

#11

30.12.2016 13:35:52

Михаил С.

Огромное СПАСИБО! Все работает идеально!!

Кнопка «Сохранить»

mefisto

Дата: Воскресенье, 17.07.2016, 08:20 |
Сообщение № 1

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 116

День добрый. может кто подскажет, можно-ли сделать кнопку «сохранить» непосредственно на листе. тоесть при нажатии файл сохранялся.

Заранее спасибо.

 

Ответить

китин

Дата: Воскресенье, 17.07.2016, 08:28 |
Сообщение № 2

Группа: Модераторы

Ранг: Экселист

Сообщений: 6973


Репутация:

1063

±

Замечаний:
0% ±


Excel 2007;2010;2016

[vba]

Код

Sub Макрос1()
    ActiveWorkbook.Save
End Sub

[/vba]
вкладка разработчик вставить кнопку и присвоить этот макрос не?

К сообщению приложен файл:

999.xlsm
(10.7 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

 

Ответить

mefisto

Дата: Воскресенье, 17.07.2016, 08:29 |
Сообщение № 3

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 116

:) спасибо…. не нужно смеяться над теми кто не умеет…. спасибо огромное)

 

Ответить

JayBhagavan

Дата: Воскресенье, 17.07.2016, 08:30 |
Сообщение № 4

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 188


Репутация:

27

±

Замечаний:
0% ±


Excel 2010

Здравия.
Можно:
1. Пишете макрос, например:
[vba]

Код

Sub user_save_activeworkbook()
    ActiveWorkbook.Save
End Sub

[/vba]
2. Вставляете на лист кнопку (вкладка разработчик, хотя смотря какая у Вас версия офиса, думаю, разберётесь)
3. К кнопке привязываете сей макрос.
Всё.


Языком ты или построишь жизнь,или разрушишь ее до основания.Думайте что говорите.(с)А.Хакимов

 

Ответить

китин

Дата: Воскресенье, 17.07.2016, 08:35 |
Сообщение № 5

Группа: Модераторы

Ранг: Экселист

Сообщений: 6973


Репутация:

1063

±

Замечаний:
0% ±


Excel 2007;2010;2016

не нужно смеяться над теми кто не умеет

не понял а кто смеялся? вопрос

чисто означал так?


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

 

Ответить

mefisto

Дата: Воскресенье, 17.07.2016, 08:36 |
Сообщение № 6

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 116

Спасибо большое

 

Ответить

mefisto

Дата: Воскресенье, 17.07.2016, 08:37 |
Сообщение № 7

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 116

Цитата mefisto, 17.07.2016 в 08:29, в сообщении № 3
не нужно смеяться над теми кто не умеет

не понял а кто смеялся? вопрос
Цитата китин, 17.07.2016 в 08:28, в сообщении № 2
не?

чисто означал так?

Та я шучу… подчеркнул только что Ваши знания намного круче… что для Вас элементарно, то для меня лес дремучий))

 

Ответить

китин

Дата: Воскресенье, 17.07.2016, 08:47 |
Сообщение № 8

Группа: Модераторы

Ранг: Экселист

Сообщений: 6973


Репутация:

1063

±

Замечаний:
0% ±


Excel 2007;2010;2016

mefisto, в VBA я делаю первые шаги. и тот макрос записан при помощи макрорекордера :D


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

 

Ответить

mefisto

Дата: Воскресенье, 17.07.2016, 09:01 |
Сообщение № 9

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 116

ясно… все равно больше знаете…

сделал, получилось, но не подходит… Хочу состряпать файлик для учета продаж и пользоваться на планшете под андроидом.. а эксель под андроид не поддерживает макросы… скотина)

Спасибо всем за помощь

 

Ответить

  • Создание файлов
  • Листы Excel
  • Книги Excel

Данный макрос позволяет упростить процедуру сохранения активного листа в книге Excel в отдельный файл.

Для использования этого макроса на любом листе в книге Excel создайте кнопку, и назначьте ей макрос СохранитьЛистВФайл.

При запуске макроса (нажатии кнопки) будет выведено диалоговое окно выбора имени для сохраняемого файла, после чего текущий лист будет сохранён под заданным именем в выбранной папке.

Сохранение производится в формате XLS (формат Excel 2003)
Если пользователь отказался от ввода имени файла (нажал клавишу ESC или кнопку «Отмена» в диалоговом окне),
то сохранения листа в файл не происходит.

Sub СохранитьЛистВФайл()
    On Error Resume Next
    ' название подпапки, в которую по-умолчанию будет предложено сохранить файл
    Const REPORTS_FOLDER = "Отчёты"
    ' создаём папку для файла, если её ещё нет
    MkDir ThisWorkbook.Path & "" & REPORTS_FOLDER
    ' выбираем стартовую папку
    ChDrive Left(ThisWorkbook.Path, 1): ChDir ThisWorkbook.Path & "" & REPORTS_FOLDER
 
    ' вывод диалогового окна для запроса имени сохраняемого файла
    Filename = Application.GetSaveAsFilename("отчёт.xls", "Отчёты Excel (*.xls),", , _
                                             "Введите имя файла для сохраняемого отчёта", "Сохранить")
    ' если пользователь отказался от выбора имени файла - отменяем сохранение листа в файл
    If VarType(Filename) = vbBoolean Then Exit Sub
 
    ' копируем активный лист (при этом создаётся новая книга)
    Err.Clear: ActiveSheet.Copy: DoEvents
    If Err Then Exit Sub    ' произошла какая-то ошибка при попытке копирования листа

    ' убеждаемся, что активной книгой является копия листа
    If ActiveWorkbook.Worksheets.Count = 1 And ActiveWorkbook.Path = "" Then
        ' сохраняем файл под заданным именем в формате Excel 2003
        ActiveWorkbook.SaveAs Filename, xlWorkbookNormal
 
        ' закрываем сохранённый файл
        ' (удалите следующую строку, если закрывать созданный файл не требуется)
        ActiveWorkbook.Close False
    End If
End Sub

PS: Кто-то может сказать, что для сохранения листа в файл в объектной модели Excel есть метод SaveAs, применимый к объекту Worksheet.

Но, как ни странно, выполнение кода ActiveSheet.SaveAs «<имя файла>» приводит к сохранению книги целиком, что равносильно использованию кода ActiveWorkbook.SaveAs «<имя файла>»

Почему этот метод сохранения работает так нелогично — лично мне не понятно (видимо, Microsoft что-то там перемудрил)

  • 178120 просмотров

Не получается применить макрос? Не удаётся изменить код под свои нужды?

Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Excel кнопка скрыть ячейки в excel
  • Excel клавиша для закрепления ячейки в формуле
  • Excel кнопка скрыть строки
  • Excel кестесінде ?анша жол бар
  • Excel кнопка с датой

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии